PHP 8 logo

Novinky, ktoré prináša PHP 8

2020-12-08

Autor: Monika Hudová

SK

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

Named arguments in PHP 8


– Zadávajte iba povinné parametre, preskočte voliteľné.
– Argumenty sú nezávislé od poradia a samodokumentované.

Attributes in PHP 8

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

Ďalšie články

Coder’s Corner #1 – November

Hľadáte inšpiráciu pre svoje projekty? Chcete byť o krok pred ostatnými vo svete technológií? Coder’s Corner je vaša pravidelná dávka čerstvých noviniek, vylepšení a nástrojov,