Globalement, l'utilisation des mots réservés en tant que nom de propriété, constante ou méthode dans des classes, des interfaces ou des traits sont désormais autorisés. Ceci réduit la surface des casses de rétrocompatibilité quand des nouveaux mots-clés sont introduits et évite les restrictions de nommage sur les APIs.
Ceci est particulièrement utile lorsque vous créez des DSLs internes avec des interfaces "fluent" :
<?php
// 'new', 'private' et 'for' étaient inutilisables auparavant
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>
La seule limitation est que le mot-clé class
ne peut
toujours pas être utilisé comme nom de constante, sinon il serait en
conflit avec la syntaxe de résolution du nom de la classe
(ClassName::class
).
Auparavant, un avertissement était émit si le paramètre INI
date.timezone
n'avait pas été défini avant d'utiliser les fonctions de date/temps.
Maintenant, cet avertissement a été supprimé (avec
date.timezone
qui continue
d'être UTC par défaut).