Novinky, ktoré prináša PHP 8

Ikona: autor článku Monika Hudová
Ikona: dátum článku 8 Decembra 2020
Ikona: kategória článku Novinky a Svet technológií
Ikona: čas čítania 5 min. čítania

PHP 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.

Blog image

(Pre zväčšenie obrázkov je potrebné otvoriť ich na novej karte.)

Pomenované argumenty

Named arguments in PHP 8
- Zadávajte iba povinné parametre, preskočte voliteľné.
- Argumenty sú nezávislé od poradia a samodokumentované.

Atribúty
Attributes in PHP 8
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