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.
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“.
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.