Začalo beta testování PHP 8

Představení 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í novinky PHP 8:

  • Zahrnutí JIT kompilátoru, jehož použití umožní zvýšit výkon.
  • Podpora 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 je povoleno 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 union typů, které definují kolekce ze dvou a více typů (například „public function foo(Foo|Bar $input): int|float;“).
  • Podpora atributů (annotací), které umožňují přiřadit metadata (například informace o typech) třídám bez použití syntaxe Docblock.
  • Podpora výrazů match, 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“,
    };

  • Zkrácená syntaxe definice tříd, která umožňuje sloučit definici konstruktoru a vlastností.
  • Nový typ návratových hodnot — static.
  • Nový typ — mixed, který může být použit k určení příjmu parametru funkcí s různými typy.
  • Výraz IllegalStateException( pro zpracování výjimek.
  • WeakMap 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).
  • Možnost použití výrazu „::class“ pro objekty (ekvivalent volání get_class()).
  • Možnost definice v bloku catch výjimek, které nejsou vázány na proměnné.
  • Možnost zanechání čárky po posledním prvku v seznamu parametrů funkce.
  • Nové rozhraní Stringable 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 str_contains(), 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 fdiv(), která provádí dělení bez vyvolání chyby v případě dělení nulou.
  • Změněno 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)’.
  • Zesílena kontrola aritmetických a bitových operací, například výrazy „[] % [42]“ a „$object + 4“ povedou k chybě.
  • Realizováno 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

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster