Testarea alfa a PHP 8.2 a început

A fost prezentată prima versiune alfa a noii ramuri a limbajului de programare PHP 8.2. Lansarea este programată pentru 24 noiembrie. Principalele inovații deja disponibile pentru testare sau planificate pentru implementare în PHP 8.2:

  • S-au adăugat tipuri separate „false” și „null”, care pot fi utilizate, de exemplu, pentru o funcție pentru a returna un semnal de terminare a erorii sau o valoare goală. Anterior, „false” și „null” puteau fi folosite doar împreună cu alte tipuri (de exemplu, „șir|false”), dar acum pot fi folosite separat: function alwaysFalse(): false { return false; }
  • S-a adăugat posibilitatea de a marca o clasă ca fiind doar pentru citire. Proprietățile din astfel de clase pot fi setate o singură dată, după care nu vor fi disponibile pentru modificare. Anterior, proprietățile individuale ale clasei puteau fi marcate doar pentru citire, dar acum puteți activa acest mod pentru toate proprietățile clasei simultan. Specificarea steagului „numai citire” la nivel de clasă blochează, de asemenea, adăugarea dinamică a proprietăților la clasă. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* … */); $post->necunoscut = 'greșit'; // Eroare: Nu se poate crea proprietatea dinamică Post::$necunoscut
  • Abilitatea de a crea dinamic proprietăți într-o clasă (cum ar fi „post->necunoscut” în exemplul de mai sus) a fost depreciată. În PHP 9.0, accesarea proprietăților care nu sunt definite inițial în clasă va avea ca rezultat o eroare (ErrorException). Clasele care furnizează metode __get și __set pentru crearea proprietăților, sau proprietăți dinamice în stdClass vor continua să funcționeze fără modificări, doar lucrul implicit cu proprietăți inexistente va fi suportat pentru a proteja dezvoltatorul de erori ascunse. Pentru a păstra funcționarea vechiului cod, este propus atributul „#[AllowDynamicProperties]”, permițând utilizarea proprietăților dinamice.
  • Oferă posibilitatea de a filtra setările sensibile în ieșirea urmăririi stivei în momentul unei erori. Eliminarea anumitor informații poate fi necesară atunci când informațiile despre erori care apar sunt trimise automat către servicii terțe care urmăresc problemele și informează dezvoltatorii despre acestea. De exemplu, puteți exclude parametrii din urmărire care includ nume de utilizator, parole și variabile de mediu. function test( $foo, #[\SensitiveParameter] $parola, $baz ) { throw new Exception('Eroare'); } test('foo', 'parola', 'baz'); Eroare fatală: Excepție neprinsă: Eroare în test.php:8 Urmărirea stivei: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {principal} aruncat în test.php pe linia 8
  • Abilitatea de a înlocui valorile variabilelor în șiruri de caractere folosind expresiile „${var}” și ${(var)}” a fost retrasă. S-a păstrat suportul pentru înlocuirile „{$var}” și „$var” utilizate în mod obișnuit. De exemplu: „Bună ziua {$world}”; OK „Bună ziua $world”; OK „Bună ziua ${world}”; Învechit: utilizarea ${} în șiruri este depreciată
  • Apelabile parțial acceptate depreciate care pot fi apelate prin „call_user_func($callable)”, dar nu acceptă apelarea în forma „$callable()”: „self::method” „parent::method” „static::method” [”self”, “method”] [”parent”, “method”] [”static]”, [”Barrometodo”, [”Barometodo”] :: metoda"]
  • S-a implementat conversia majusculelor, independentă de localitate. Funcții precum strtolower() și strtoupper() acum convertesc întotdeauna caracterele din intervalul ASCII, ca atunci când setați localitatea la „C”.

Sursa: opennet.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster