Uther (./3335) :
Arg!
PHP est encore plus crade que dans mes souvenirs.
A l'époque (à vous de remettre les choses dans leur contexte d'il y a pas loin de 20 ans), c'était une feature... et à l'usage, comme plusieurs autres features
de l'époque, il s'est avéré que ce n'était pas si terrible comme idée.
Maintenant (depuis longtemps ; des années), utiliser une constante non définie (qui fait un fallback sur une chaine de caractère dont le texte est le nom de la constante non définie) lève un avertissement.
PHP a la bonne (ou mauvaise) habitude de rester compatible au maximum (enfin, on va dire ça) lors des montées de versions (sinon, le public ne monte pas de version, ça s'est vu dans le passé) ; et du coup c'est encore là...
Jusqu'à PHP 7.1 inclus, cet avertissement est de niveau
notice (normalement, on les affiche en développement).
A partir de PHP 7.2 (publié il y a quelques jours), cet avertissement est de niveau
warning (plus "grave" ; normalement, on les loggue en production) ; l'idée étant d'indiquer aux développeurs qui utiliseraient encore cette
fonctionnalité qu'ils ne devraient pas. Et le message d'erreur indique, depuis 7.2, que cette
fonctionnalité lèvera une exception (une Error) dans le futur.
En somme : oui c'est pourri. Non ça peut pas juste être changé du jour au lendemain. Oui, le travail de changement est en cours.
Cf
https://3v4l.org/N9rE7 pour les messages d'erreur des différentes versions de PHP.
Et cf
https://wiki.php.net/rfc/deprecate-bareword-strings pour la RFC à propos du changement arrivée en 7.2 et qui devrait se poursuivre en 8.0.