Začalo beta-testovanie PHP 8

Predstavené 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é novinky PHP 8:

  • Zahŕňajúci JIT-kompilátor, ktorého použitie zvýši výkon.
  • Podpora 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 je povolené 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 union-typov, určujúcich kolekcie z dvoch a viacerých typov (napríklad „public function foo(Foo|Bar $input): int|float;“).
  • Podpora atribútov (annotations), ktoré umožňujú priradiť metaúdaje (napríklad informácie o typoch) triedam bez použitia syntaxe Docblock.
  • Podpora výrazov match, 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“,
    };

  • Skrátená syntax definovania tried, ktorá umožňuje spojiť definíciu konštruktora a vlastností.
  • Nový typ návratových hodnôt — static.
  • Nový typ — mixed, ktorý môže byť použitý na určenie, že funkcia prijíma parametre rôznych typov.
  • Výraz throw na spracovanie výnimiek.
  • WeakMap na vytvorenie objektov, ktoré je možné obetovať pri správe pamäte (napríklad na uchovávanie voliteľných cache).
  • Možnosť používanie výrazu „::class“ pre objekty (analóg výzvy get_class()).
  • Možnosť definovanie v bloku catch výnimiek, ktoré nie sú priradené k premenným.
  • Možnosť nechávanie čiarky po poslednom prvku v zozname parametrov funkcie.
  • Nové rozhranie Stringable 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 str_contains(), 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 fdiv(), vykonávajúca operáciu delenia bez výstupu chyby v prípade delenia nulou.
  • Zmenená 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)'.
  • Sprísnená kontrola aritmetických a bitových operácií, napríklad výrazy '[] % [42]' a '$object + 4' povedú k chybe.
  • Implementované stabilný algoritmus triedenia, v ktorom sa pri rôznych spusteniach zachováva poradie rovnakých hodnôt.
  • Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster