prvý beta-vydanie novej vetvy programovacieho jazyka PHP 8. Uvoľnenie je naplánované na 26. novembra. Súčasne boli vytvorené opravy pre PHP 7.4.9, 7.3.21 a
7.2.33, v ktorých boli odstránené akumulované chyby a zraniteľnosti.
Hlavné PHP 8:
- , ktorého použitie zvýši výkon.
- menovaných argumentov funkcií, ktoré umožňujú posielať do funkcie hodnoty podľa mien, t.j. je možné posielať argumenty v ľubovoľnom poradí a definovať voliteľné argumenty. Napríklad „array_fill(start_index: 0, num: 100, value: 50)“.
- Pri volaní metód používanie operátora „?“, ktorý umožňuje iniciovať volanie iba v prípade, že metóda existuje, čo zabraňuje zbytočným kontrolám na návratovú hodnotu „null“. Napríklad „$dateAsString = $booking->getStartDate()?->asDateTimeString()“;
- Podpora , určujúcich kolekcie z dvoch a viacerých typov (napríklad „public function foo(Foo|Bar $input): int|float;“).
- Podpora (annotations), ktoré umožňujú priradiť metaúdaje (napríklad informácie o typoch) triedam bez použitia syntaxe Docblock.
- Podpora výrazov , ktoré na rozdiel od switch môžu vracať hodnoty, podporujú kombinovanie podmienok, používajú prísne porovnanie typov a nevyžadujú uvedenie „break“.
$result = match($input) {
0 => „hello“,
‘1’, ‘2’, ‘3’ => „world“,
}; - definovania tried, ktorá umožňuje spojiť definíciu konštruktora a vlastností.
- Nový typ návratových hodnôt — .
- Nový typ — , ktorý môže byť použitý na určenie, že funkcia prijíma parametre rôznych typov.
- Výraz na spracovanie výnimiek.
- na vytvorenie objektov, ktoré je možné obetovať pri správe pamäte (napríklad na uchovávanie voliteľných cache).
- používanie výrazu „::class“ pre objekty (analóg výzvy get_class()).
- definovanie v bloku catch výnimiek, ktoré nie sú priradené k premenným.
- nechávanie čiarky po poslednom prvku v zozname parametrov funkcie.
- Nové rozhranie na identifikáciu akýchkoľvek typov reťazcov alebo dát, ktoré je možné previesť na reťazec (pre ktoré je dostupná metóda __toString()).
- Nová funkcia , zjednodušená verzia strpos na určenie výskytu podreťazca, ako aj funkcie str_starts_with() a str_ends_with() na kontrolu zhody na začiatku a na konci reťazca.
- Pridaná funkcia , vykonávajúca operáciu delenia bez výstupu chyby v prípade delenia nulou.
- logika spájania reťazcov. Napríklad, výraz 'echo "sum: " . $a + $b' bol predtým interpretovaný ako 'echo ("sum: " . $a) + $b', zatiaľ čo v PHP 8 bude spracovaný ako 'echo "sum: " . ($a + $b)'.
- kontrola aritmetických a bitových operácií, napríklad výrazy '[] % [42]' a '$object + 4' povedú k chybe.
- stabilný algoritmus triedenia, v ktorom sa pri rôznych spusteniach zachováva poradie rovnakých hodnôt.
Zdroj: opennet.ru
