Presentado a primeira versión beta da nova rama da linguaxe de programación PHP 8. O lanzamento está previsto para o 26 de novembro. Ao mesmo tempo, as versións correctivas de PHP 7.4.9, 7.3.21 e
7.2.33, que eliminou os erros e vulnerabilidades acumulados.
Apoiar argumentos de funcións con nome, que lle permiten pasar valores á función en relación cos nomes, é dicir. Podes pasar argumentos en calquera orde e definir argumentos opcionais. Por exemplo, "array_fill(índice_inicio: 0, num: 100, valor: 50)".
Ao chamar métodos permitido usando o operador “?”, que permite iniciar unha chamada só se o método está presente, o que evita verificacións innecesarias para devolver o valor “nulo”. Por exemplo, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
Apoiar tipos de sindicatos, definindo coleccións de dous ou máis tipos (por exemplo, “función pública foo(Foo|Bar $input): int|float;”).
Apoiar atributos (anotacións) que che permiten vincular metadatos (como información de tipo) a clases sen usar a sintaxe de Docblock.
Apoio á expresión combinar, que, a diferenza de switch, pode devolver valores, admitir condicións de combinación, usar comparacións de tipos estritas e non requiren unha especificación de "ruptura".
Mapa débil para crear obxectos que se poidan sacrificar durante a recollida de lixo (por exemplo, para almacenar cachés innecesarios).
Oportunidade usando a expresión "::class" para obxectos (análogo a chamar get_class()).
Oportunidade definicións no bloque catch de excepcións que non están vinculadas a variables.
Oportunidade deixando unha coma despois do último elemento da lista de parámetros da función.
Nova interface Cordable para identificar calquera tipo de cadea ou dato que se poida converter nunha cadea (para o que está dispoñible o método __toString()).
Nova característica str_contain(), un análogo simplificado de strpos para determinar a aparición dunha subcadea, así como as funcións str_starts_with() e str_ends_with() para comprobar as coincidencias ao comezo e ao final dunha cadea.
Función engadida fdiv(), que realiza unha operación de división sen producir un erro ao dividir entre cero.
Cambiado lóxica de unión de cadeas. Por exemplo, a expresión 'echo "sum:" . $a + $b' interpretouse anteriormente como 'eco ("suma: " . $a) + $b', e en PHP 8 tratarase como "eco "suma: " . ($a + $b)'.
Apretado comprobando operacións aritméticas e de bits, por exemplo, as expresións "[] % [42]" e "$obxecto + 4" producirán un erro.
Implementado un algoritmo de clasificación estable no que se conserva a orde de valores idénticos en diferentes execucións.