první beta verze nové větve programovacího jazyka PHP 8. Uvolnění je naplánováno na 26. listopadu. Současně byly vytvořeny opravné verze PHP 7.4.9, 7.3.21 a
7.2.33, ve kterých byly odstraněny nahromaděné chyby a zranitelnosti.
Hlavní PHP 8:
- , jehož použití umožní zvýšit výkon.
- pojmenovaných argumentů funkcí, které umožňují předávat do funkce hodnoty na základě názvů, t.j. lze předávat argumenty v libovolném pořadí a definovat volitelné argumenty. Například, „array_fill(start_index: 0, num: 100, value: 50)“.
- Při volání metod použití operátoru „?“, který umožňuje iniciovat volání pouze, pokud metoda existuje, což umožňuje vyhnout se zbytečným kontrolám na návratovou hodnotu „null“. Například, „$dateAsString = $booking->getStartDate()?->asDateTimeString()“;
- Podpora , které definují kolekce ze dvou a více typů (například „public function foo(Foo|Bar $input): int|float;“).
- Podpora (annotací), které umožňují přiřadit metadata (například informace o typech) třídám bez použití syntaxe Docblock.
- Podpora výrazů , které na rozdíl od switch mohou vracet hodnoty, podporují kombinaci podmínek, používají přísné porovnávání typů a nevyžadují uvedení „break“.
$result = match($input) {
0 => „hello“,
‘1’, ‘2’, ‘3’ => „world“,
}; - definice tříd, která umožňuje sloučit definici konstruktoru a vlastností.
- Nový typ návratových hodnot — .
- Nový typ — , který může být použit k určení příjmu parametru funkcí s různými typy.
- Výraz pro zpracování výjimek.
- pro vytváření objektů, které mohou být obětovány při sběru odpadu (například pro uchovávání volitelných cache).
- použití výrazu „::class“ pro objekty (ekvivalent volání get_class()).
- definice v bloku catch výjimek, které nejsou vázány na proměnné.
- zanechání čárky po posledním prvku v seznamu parametrů funkce.
- Nové rozhraní pro identifikaci jakýchkoli typů řetězců nebo dat, které lze převést na řetězec (pro které je k dispozici metoda __toString()).
- Nová funkce , zjednodušená varianta strpos pro určení výskytu podřetězce, stejně jako funkce str_starts_with() a str_ends_with() pro kontrolu shody na začátku a na konci řetězce.
- Byla přidána funkce , která provádí dělení bez vyvolání chyby v případě dělení nulou.
- logika spojování řetězců. Například výraz ‘echo „sum: “ . $a + $b’ byl dříve interpretován jako ‘echo („sum: “ . $a) + $b’, nyní v PHP 8 bude zpracován jako ‘echo „sum: “ . ($a + $b)’.
- kontrola aritmetických a bitových operací, například výrazy „[] % [42]“ a „$object + 4“ povedou k chybě.
- stabilní algoritmus třídění, který při různých spuštěních zachovává pořadí stejných hodnot.
Zdroj: opennet.ru
