Beta testování PHP 8 začalo

Předložené první beta verze nové větve programovacího jazyka PHP 8. Vydání je naplánováno na 26. listopadu. Současně byla vydána opravná vydání PHP 7.4.9, 7.3.21 a
7.2.33, který odstranil nahromaděné chyby a zranitelnosti.

hlavní inovace PHP 8:

  • Povolení JIT kompilátor, jejichž použití zvýší produktivitu.
  • Podpora argumenty pojmenované funkce, které umožňují předávat funkci hodnoty ve vztahu k jménům, tzn. Argumenty můžete předávat 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 povoleno pomocí operátoru „?“, který umožňuje zahájit volání pouze v případě, že je přítomna metoda, čímž se vyhnete zbytečným kontrolám vracení hodnoty „null“. Například "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Podpora odborové typy, definující kolekce dvou nebo více typů (například „public function foo(Foo|Bar $input): int|float;“).
  • Podpora atributy (anotace), které vám umožňují svázat metadata (jako jsou informace o typu) na třídy bez použití syntaxe Docblock.
  • Podpora výrazů zápas, který na rozdíl od přepínače dokáže vracet hodnoty, podporuje kombinování podmínek, používá přísná porovnání typů a nevyžaduje specifikaci „break“.

    $vysledek = shoda($vstup) {
    0 => "ahoj",
    '1', '2', '3' => "svět",
    };

  • Zkrácená syntaxe definice tříd, což umožňuje kombinovat definici konstruktoru a vlastností.
  • Nový typ vrácení - statický.
  • Nový typ - smíšený, který lze použít k určení, zda funkce přijímá parametry různých typů.
  • Výraz hod řešit výjimky.
  • Slabá mapa k vytváření objektů, které lze obětovat během sběru odpadu (například pro ukládání nepotřebných mezipamětí).
  • Příležitost pomocí výrazu „::class“ pro objekty (analogicky k volání get_class()).
  • Příležitost definice v bloku catch výjimek, které nejsou vázány na proměnné.
  • Příležitost ponechání čárky za posledním prvkem v seznamu parametrů funkcí.
  • Nové rozhraní Navlékací k identifikaci všech typů řetězců nebo dat, která lze převést na řetězec (pro který je k dispozici metoda __toString()).
  • Nová vlastnost str_contains(), zjednodušená obdoba 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 konci řetězce.
  • Funkce přidána fdiv(), který provede operaci dělení bez vyvolání chyby při dělení nulou.
  • Změněno logika spojování řetězců. Například výraz 'echo "součet:" . $a + $b' bylo dříve interpretováno jako 'echo ("součet: " . $a) + $b' a v PHP 8 bude považováno za "echo "součet: " . ($a + $b)'.
  • Utažené kontrola aritmetických a bitových operací, například výrazy "[] % [42]" a "$object + 4", způsobí chybu.
  • Realizováno stabilní třídicí algoritmus, ve kterém je zachováno pořadí identických hodnot v různých běhech.
  • Zdroj: opennet.ru

Přidat komentář