Η beta δοκιμή της PHP 8 έχει ξεκινήσει

Εισήχθη η πρώτη έκδοση beta του νέου κλάδου της γλώσσας προγραμματισμού PHP 8. Η κυκλοφορία έχει προγραμματιστεί για τις 26 Νοεμβρίου. Ταυτόχρονα, διορθωτικές εκδόσεις των PHP 7.4.9, 7.3.21 και
7.2.33, το οποίο εξάλειψε τα συσσωρευμένα σφάλματα και τα τρωτά σημεία.

Ο κύριος καινοτομίες PHP 8:

  • Συμπερίληψη JIT compiler, η χρήση των οποίων θα βελτιώσει την παραγωγικότητα.
  • Υποστήριξη ονομασμένα ορίσματα συνάρτησης, που σας επιτρέπουν να μεταβιβάσετε τιμές στη συνάρτηση σε σχέση με ονόματα, π.χ. Μπορείτε να μεταβιβάσετε ορίσματα με οποιαδήποτε σειρά και να ορίσετε προαιρετικά ορίσματα. Για παράδειγμα, "array_fill(start_index: 0, num: 100, value: 50)".
  • Κατά την κλήση μεθόδων επιτρέπεται χρησιμοποιώντας τον τελεστή "?", ο οποίος σας επιτρέπει να ξεκινήσετε μια κλήση μόνο εάν υπάρχει η μέθοδος, γεγονός που αποφεύγει περιττούς ελέγχους για την επιστροφή της τιμής "μηδενός". Για παράδειγμα, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Υποστήριξη τύπους συνδικάτων, ορίζοντας συλλογές δύο ή περισσότερων τύπων (για παράδειγμα, "δημόσια συνάρτηση foo(Foo|Bar $input): int|float;").
  • Υποστήριξη γνωρίσματα (σχολιασμοί) που σας επιτρέπουν να συνδέετε μεταδεδομένα (όπως πληροφορίες τύπου) σε κλάσεις χωρίς να χρησιμοποιείτε σύνταξη Docblock.
  • Υποστήριξη έκφρασης ταιριάζω, το οποίο, σε αντίθεση με το διακόπτη, μπορεί να επιστρέψει τιμές, να υποστηρίξει συνθήκες συνδυασμού, να χρησιμοποιεί αυστηρές συγκρίσεις τύπων και να μην απαιτεί προδιαγραφή "σπασίματος".

    $result = match($input) {
    0 => "γεια",
    '1', '2', '3' => "κόσμος",
    };

  • Συντομευμένη σύνταξη ορισμούς κλάσεων, επιτρέποντάς σας να συνδυάσετε τον ορισμό ενός κατασκευαστή και ιδιοτήτων.
  • Νέος τύπος επιστροφής - στατικός.
  • Νέος τύπος - μικτός, το οποίο μπορεί να χρησιμοποιηθεί για να προσδιοριστεί εάν μια συνάρτηση δέχεται παραμέτρους διαφορετικών τύπων.
  • Έκφραση βολή να χειριστεί τις εξαιρέσεις.
  • WeakMap για τη δημιουργία αντικειμένων που μπορούν να θυσιαστούν κατά τη συλλογή σκουπιδιών (για παράδειγμα, για να αποθηκεύσετε περιττές κρυφές μνήμες).
  • Ευκαιρία χρησιμοποιώντας την έκφραση “::class” για αντικείμενα (ανάλογα με την κλήση get_class()).
  • Ευκαιρία ορισμούς στο μπλοκ catch των εξαιρέσεων που δεν δεσμεύονται σε μεταβλητές.
  • Ευκαιρία αφήνοντας κόμμα μετά το τελευταίο στοιχείο στη λίστα των παραμέτρων συνάρτησης.
  • Νέα διεπαφή Stringable για να προσδιορίσετε τυχόν τύπους συμβολοσειράς ή δεδομένα που μπορούν να μετατραπούν σε συμβολοσειρά (για την οποία είναι διαθέσιμη η μέθοδος __toString().
  • Νέα δυνατότητα str_contains(), ένα απλοποιημένο ανάλογο του strpos για τον προσδιορισμό της εμφάνισης μιας υποσυμβολοσειράς, καθώς και τις συναρτήσεις str_starts_with() και str_ends_with() για τον έλεγχο αντιστοιχιών στην αρχή και στο τέλος μιας συμβολοσειράς.
  • Προστέθηκε λειτουργία fdiv(), το οποίο εκτελεί μια λειτουργία διαίρεσης χωρίς να κάνει λάθος κατά τη διαίρεση με το μηδέν.
  • Άλλαξε λογική σύνδεσης συμβολοσειρών. Για παράδειγμα, η έκφραση 'echo "sum:" . Το $a + $b' προηγουμένως ερμηνεύτηκε ως 'echo ("sum: " . $a) + $b' και στην PHP 8 θα αντιμετωπίζεται ως "echo "sum: " . ($a + $b)'.
  • Σφιγμένο ελέγχοντας αριθμητικές πράξεις και πράξεις bit, για παράδειγμα, οι εκφράσεις "[] % [42]" και "$object + 4" θα έχουν ως αποτέλεσμα σφάλμα.
  • Εφαρμόστηκε ένας σταθερός αλγόριθμος ταξινόμησης στον οποίο διατηρείται η σειρά των ίδιων τιμών σε διαφορετικές εκτελέσεις.
  • Πηγή: opennet.ru

Προσθέστε ένα σχόλιο