La nouvelle version de PHP est clairement majeure. Les nouveautés y sont particulièrement nombreuses, et beaucoup sont importantes.
Par exemple, PHP 8.0 propose des nouveaux compilateurs JIT (Just In Time, compilation à la volée). L’un des deux, Tracing JIT, se veut particulièrement prometteur, avec « environ trois fois plus de performances sur des benchmarks synthétiques et 1,5 à 2 fois plus de performances sur certaines applications à longue durée d'exécution ».
Parmi les autres améliorations, on note :
- Les arguments nommés (on ne spécifie que les paramètres requis), indépendants et auto-documentés
- Des métadonnées structurées avec la syntaxe PHP pour les attributs
- La promotion des propriétés des constructeurs
- Les types d’unions, permettant d’utiliser les déclarations de types d’union native, validées à l’exécution
- L’expression Match, qui réalise des comparaisons strictes, le résultat pouvant être enregistré dans une variable ou retourné
- Nullsafe, opérateur autorisant les chaines d’appels à la place des vérifications conditionnelles de null. Si l’un des éléments échoue, l’exécution de la chaine est coupée et cette dernière équivaut à null.
- Une majorité de fonctions internes renvoient une exception Error si la validation du paramètre échoue
- Une vérification de type plus sévère pour les opérateurs arithmétiques et bit à bit
- La possibilité de créer des héritages avec les méthodes privées
- Un nouveau type mixed
- Les virgules trainantes sont autorisées dans les listes de paramètres et listes des use d'une fermeture
- L’ajout de catchs non capturants
- La possibilité d’utiliser ::class sur les objets
La liste complète des nouveautés peut être consultée depuis l’annonce officielle.