Je voudrais définir une constante de classe en utilisant une concaténation d'une constante existante et d'une chaîne. Je ne peux pas le prédéfinir car seuls les scalaires sont autorisés pour les constantes de prédéfinis, donc je l'ai actuellement dans le cadre de mon constructeur avec une fonction defined() vérifiant si elle est déjà définie. Cette solution fonctionne mais ma constante est maintenant inutilement globale.Définition de la constante de classe dans PHP
Existe-t-il un moyen de définir une constante de classe à l'exécution en PHP?
Merci.
Envisagez d'utiliser une variable statique. http://php.net/manual/fr/language.oop5.static.php – Matchu
utilise define() considéré monkey-patching? existe-t-il une raison pour laquelle la définition de constantes globales à l'exécution est acceptable alors que la définition de constantes de classe ne l'est pas? – joshs
@josh L'utilisation de define() * en tant que tel * n'est pas considérée comme un patch de singe. Vous devez avoir un mécanisme pour définir les constantes et techniquement cela arrive toujours à l'exécution. Cependant, l'idée d'une telle constante est de fournir une * valeur * globalement * disponible *, ce qui explique pourquoi vous déclarez généralement des constantes au-dessus de votre script. Le faire plus tard ou sur la base de certaines conditions est ce que je considérerais comme une mauvaise utilisation car alors vous utilisez la constante comme une variable et en cas de redéfinition ou de redéfinition, je considère cela comme un mauvais monkeypatching, car cela modifie le comportement interne de PHP. – Gordon