prima versiune beta a noului ramura a limbajului de programare PHP 8. Lansarea este programată pentru 26 noiembrie. În același timp, au fost formate versiunile corective PHP 7.4.9, 7.3.21 și
7.2.33, în care au fost eliminate erorile și vulnerabilitățile acumulate.
Principalele PHP 8:
- , al cărui utilizare va permite creșterea performanței.
- argumente denumite pentru funcții, care permit transmiterea valorilor unei funcții legate de nume, adică se pot transmite argumente în ordine aleatorie și se pot defini argumente opționale. De exemplu, „array_fill(start_index: 0, num: 100, value: 50)”.
- La apelarea metodelor utilizarea operatorului „?”, care permite inițierea apelului doar dacă metoda este prezentă, evitând astfel verificările inutile pentru returnarea valorii „null”. De exemplu, „$dateAsString = $booking->getStartDate()?->asDateTimeString()”;
- Asistență , care definesc colecții din două sau mai multe tipuri (de exemplu „public function foo(Foo|Bar $input): int|float;”).
- Asistență (anotații), care permit asocierea de metadate (de exemplu, informații despre tipuri) cu clasele fără a utiliza sintaxa Docblock.
- Suport pentru expresii , care spre deosebire de switch pot returna valori, susțin combinarea condițiilor, folosesc comparația strictă a tipurilor și nu necesită indicarea „break”.
$result = match($input) {
0 => „hello”,
‘1’, ‘2’, ‘3’ => „world”,
}; - pentru definirea claselor, care permite combinarea definiției constructorului și a proprietăților.
- Un nou tip de valori returnate — .
- Un nou tip — , care poate fi utilizat pentru a defini parametrii funcției care au tipuri diferite.
- Expresia pentru gestionarea excepțiilor.
- pentru crearea de obiecte care pot fi distruse prin colectarea deșeurilor (de exemplu, pentru stocarea de cache-uri opționale).
- utilizarea expresiei „::class” pentru obiecte (analog cu apelul get_class()).
- definirea în blocul catch a excepțiilor neasociate cu variabile.
- lăsarea unui simbol de virgulă după ultimul element din lista de parametri ai funcției.
- Nouă interfață pentru identificarea oricăror tipuri de date sau șiruri care pot fi transformate într-un șir (pentru care este disponibilă metoda __toString()).
- Nouă funcție , un echivalent simplificat al strpos pentru determinarea prezenței unei subștii, precum și funcțiile str_starts_with() și str_ends_with() pentru a verifica corespondențele la începutul și sfârșitul șirului.
- Funcție adăugată , care execută operația de împărțire fără a genera o eroare în cazul împărțirii la zero.
- modificată. De exemplu, expresia ‘echo „sum: ” . $a + $b’ a fost interpretată anterior ca ‘echo („sum: ” . $a) + $b’, iar în PHP 8 va fi procesată ca ‘echo „sum: ” . ($a + $b)’.
- verificarea operațiunilor aritmetice și bitwise, de exemplu, expresiile „[] % [42]” și „$object + 4” vor genera o eroare.
- un algoritm stabil de sortare, în care ordinea valorilor identice este păstrată în diferite execuții.
Sursa: opennet.ro
