Ξεκίνησε η δοκιμή Alpha της PHP 8.2

Παρουσιάστηκε η πρώτη έκδοση alpha του νέου κλάδου της γλώσσας προγραμματισμού PHP 8.2. Η κυκλοφορία έχει προγραμματιστεί για τις 24 Νοεμβρίου. Οι κύριες καινοτομίες που είναι ήδη διαθέσιμες για δοκιμή ή προγραμματισμένες για εφαρμογή στην PHP 8.2:

  • Προστέθηκαν ξεχωριστοί τύποι "false" και "null", οι οποίοι μπορούν να χρησιμοποιηθούν, για παράδειγμα, για μια συνάρτηση για να επιστρέψει μια σημαία τερματισμού σφάλματος ή μια κενή τιμή. Προηγουμένως, τα "false" και "null" μπορούσαν να χρησιμοποιηθούν μόνο σε συνδυασμό με άλλους τύπους (για παράδειγμα, "string|false"), αλλά τώρα μπορούν να χρησιμοποιηθούν ξεχωριστά: συνάρτηση πάνταFalse(): false { return false; }
  • Προστέθηκε η δυνατότητα επισήμανσης μιας τάξης ως μόνο για ανάγνωση. Οι ιδιότητες σε τέτοιες κλάσεις μπορούν να οριστούν μόνο μία φορά, μετά την οποία δεν μπορούν να αλλάξουν. Προηγουμένως, μεμονωμένες ιδιότητες κλάσης μπορούσαν να επισημανθούν μόνο για ανάγνωση, αλλά τώρα μπορείτε να ενεργοποιήσετε αυτήν τη λειτουργία για όλες τις ιδιότητες κλάσης ταυτόχρονα. Ο καθορισμός της σημαίας "μόνο για ανάγνωση" σε επίπεδο κλάσης αποκλείει επίσης τη δυναμική προσθήκη ιδιοτήτων στην κλάση. μόνο για ανάγνωση class Post { public function __construct( public string $title, public Συγγραφέας $author, ) {} } $post = new Post(/* … */); $post->unknown = 'λάθος'; // Σφάλμα: Δεν είναι δυνατή η δημιουργία δυναμικής ιδιότητας Δημοσίευση::$άγνωστη
  • Η δυνατότητα δυναμικής δημιουργίας ιδιοτήτων σε μια κλάση (όπως "post->άγνωστο" στο παραπάνω παράδειγμα) έχει καταργηθεί. Στην PHP 9.0, η πρόσβαση σε ιδιότητες που δεν έχουν οριστεί αρχικά στην κλάση θα οδηγήσει σε σφάλμα (ErrorException). Οι κλάσεις που παρέχουν μεθόδους __get και __set για τη δημιουργία ιδιοτήτων ή δυναμικές ιδιότητες στο stdClass, θα συνεχίσουν να λειτουργούν αμετάβλητες, μόνο η σιωπηρή εργασία με ανύπαρκτες ιδιότητες θα υποστηρίζεται για την προστασία του προγραμματιστή από κρυφά σφάλματα. Για να διατηρηθεί το έργο του παλιού κώδικα, προτείνεται το χαρακτηριστικό "#[AllowDynamicProperties]", επιτρέποντας τη χρήση δυναμικών ιδιοτήτων.
  • Παρέχει τη δυνατότητα φιλτραρίσματος ευαίσθητων παραμέτρων στην έξοδο ίχνους στοίβας κατά τη διάρκεια ενός σφάλματος. Η αποκοπή ορισμένων πληροφοριών μπορεί να είναι απαραίτητη όταν πληροφορίες σχετικά με σφάλματα που παρουσιάζονται αποστέλλονται αυτόματα σε υπηρεσίες τρίτων που παρακολουθούν προβλήματα και ενημερώνουν τους προγραμματιστές σχετικά. Για παράδειγμα, μπορείτε να εξαιρέσετε από τον εντοπισμό παραμέτρους που περιλαμβάνουν ονόματα χρήστη, κωδικούς πρόσβασης και μεταβλητές περιβάλλοντος. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Error'); } test('foo', 'password', 'baz'); Θανατηφόρο σφάλμα: Μη καταγεγραμμένη Εξαίρεση: Σφάλμα στο test.php:8 Ίχνος στοίβας: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} που τοποθετείται στο test.php στη γραμμή 8
  • Η δυνατότητα αντικατάστασης τιμών μεταβλητών σε συμβολοσειρές χρησιμοποιώντας τις εκφράσεις "${var}" και ${(var)} έχει καταργηθεί. Η υποστήριξη για τις συνήθως χρησιμοποιούμενες αντικαταστάσεις "{$var}" και "$var" έχει διατηρηθεί. Για παράδειγμα: "Γεια σας {$world}"; ΟΚ "Γεια $world"; ΟΚ "Γεια ${world}"; Καταργήθηκε: Η χρήση ${} σε συμβολοσειρές έχει καταργηθεί
  • Καταργημένες μερικώς υποστηριζόμενες κλήσεις που μπορούν να κληθούν μέσω του "call_user_func($callable)" αλλά δεν υποστηρίζουν την κλήση με τη μορφή "$callable()": "self::method" "parent::method" "static" ::method " ["self", "method"] ["parent", "method"] ["static", "method"] ["Foo", "Bar::method"] [new Foo, "Bar: :method" ]
  • Υλοποιήθηκε μετατροπή περίπτωσης ανεξάρτητης από τις τοπικές ρυθμίσεις. Λειτουργίες όπως η strtolower() και η strtoupper() μετατρέπουν τώρα πάντα τα πεζά χαρακτήρων στην περιοχή ASCII σαν να είχαν οριστεί στην τοπική ρύθμιση "C".

Πηγή: opennet.ru

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster