HP 8.0 je veľmi významná aktualizácia jazyka PHP. Obsahuje mnoho nových funkcií a optimalizácií vrátane pomenovaných argumentov, typov spojenia, atribútov, propagácie vlastností konštruktora, výrazu zhody, operátora nullsafe, JIT a samozrejme vylepšení systému, spracovania chýb a konzistencie.
(Pre zväčšenie obrázkov je potrebné otvoriť ich na novej karte.)
Pomenované argumenty
– Zadávajte iba povinné parametre, preskočte voliteľné.
– Argumenty sú nezávislé od poradia a samodokumentované.
Atribúty
Namiesto anotácií PHPDoc môžete teraz používať štruktúrované metadáta s natívnou syntaxou PHP.
Propagácia vlastností konštruktéra
Menej štandardného kódu na definovanie a inicializáciu vlastností.
Typy spojení
Namiesto anotácií PHPDoc pre kombináciu typov môžete použiť deklarácie natívneho zjednoteného typu, ktoré sú validované počas behu programu.
Zhodný výraz
Nové zhody sú podobné prepínaču a majú nasledujúce funkcie:
– Zhoda je výraz, čo znamená, že jej výsledok je možné uložiť do premennej alebo vrátiť.
– Zhody podporujú iba jednoriadkové výrazy a nepotrebujú pauzu; vyhlásenie.
– Zhoda robí striktné porovnania.
Nullsafe operátor
Namiesto podmienok null môžete teraz použiť reťazec hovorov s novým operátorom nullsafe. Keď vyhodnotenie jedného prvku v reťazci zlyhá, vykonanie celého reťazca sa preruší a celý reťazec sa vyhodnotí ako nulový.
Porovnanie reťazcov s číslami
Pri porovnaní s číselným reťazcom používa PHP 8 porovnanie čísel. V opačnom prípade prevedie číslo na reťazec a použije porovnanie reťazca.
Konzistentné typy chýb pre interné funkcie
Väčšina interných funkcií teraz vyvolá výnimku Error, ak overenie parametrov zlyhá.
Včasná kompilácia
PHP 8 predstavuje dva kompilačné motory JIT. Trasovanie JIT, najsľubnejšieho z týchto dvoch riešení, ukazuje asi trikrát lepší výkon pri syntetických testovacích hodnotách a 1,5–2-krát zlepšenie pri niektorých špecifických dlhodobých aplikáciách. Typický výkon aplikácie je na rovnakej úrovni ako PHP 7.4.
Relatívne porovnanie JIT k výkonu PHP 8
Vylepšenia systému písania a spracovania chýb:
– Prísnejšie kontroly typov pre aritmetické/bitové operátory RFC
– Abstraktná metóda overovania vlastností RFC
– Správne podpisovanie magických metód RFC
– Reklasifikované varovania motora RFC
– Závažná chyba pre nekompatibilné podpisy metód RFC
– Operátor @ už nezamlčí fatálne chyby.
– Dedenie súkromnými metódami RFC
– RFC zmiešaného typu
– Statický návratový typ RFC
– Typy interných funkcií e-mailových vlákien
– Nepriehľadné objekty namiesto prostriedkov pre rozšírenia Curl, Gd, Sockets, OpenSSL, XMLWriter a XML
Ďalšie vylepšenia a vylepšenia syntaxe
– Povoľuje koncovú čiarku v zoznamoch parametrov RFC a zoznamoch uzávierok RFC
– Nezachytáva RFC
– Vylepšenia variabilnej syntaxe RFC
– Mená s mierkou považujte za RFC s jedným tokenom
Nové triedy, rozhrania a funkcie
Weak Map class
Stringable interface
str_contains(), str_starts_with(), str_ends_with()
fdiv()
get_debug_type()
get_resource_id()
token_get_all() object implementation
Zdroj:
https://www.php.net/releases/8.0/en.php#match-expression