Invece delle annotazioni PHPDoc, ora puoi usare metadati strutturati nella sintassi nativa PHP.
Meno ripetizioni di codice per definire ed inizializzare le proprietà.
Invece di indicare una combinazione di tipi con le annotazioni PHPDoc, puoi usare una dichiarazione nativa di tipo unione che viene validato durante l'esecuzione.
La nuova espressione match è simile allo switch e ha le seguenti funzionalità:
Invece di controllare la presenza di un null, puoi ora usare una catena di chiamate con il nuovo operatore nullsafe. Quando la valutazione di un elemento della catena fallisce, l'esecuzione della catena si interrompe e l'intera catena restituisce il valore null.
Nella comparazione di una stringa numerica, PHP 8 usa la comparazione numerica. Altrimenti, converte il numero in una stringa e usa la comparazione tra stringhe.
La maggior parte delle funzioni native ora lanciano una eccezione Error se la validazione degli argomenti fallisce.
PHP 8 intrduce due motori di compilazione JIT. Tracing JIT, il più promettente dei due, mostra delle prestazioni 3 volte superiori nei benchmarks sintetici e 1.5–2 volte superiori per alcuni specifici processi applicativi a lunga esecuzione. Le prestazioni delle tipiche applicazioni web sono al pari con PHP 7.4.