Me gustaría definir una constante de clase utilizando una concatenación de una constante existente y una cadena. No puedo predefinirlo porque solo se permiten escalas para predefinir constantes, por lo que actualmente lo tengo como parte de mi constructor con una función definida() comprobando si ya está definido. Esta solución funciona pero mi constante ahora es innecesariamente global.Definición de constante de clase en PHP
¿Hay alguna manera de definir una constante de clase en tiempo de ejecución en php?
Gracias.
Considere el uso de una variable estática. http://php.net/manual/en/language.oop5.static.php – Matchu
está utilizando define() considerado monkey-patching? ¿Hay alguna razón por la cual la definición de constantes globales en el tiempo de ejecución es aceptable, mientras que la definición de las constantes de clase no lo es? – joshs
@josh El uso de define() * como tal * no se considera parche de monos. Tienes que tener un mecanismo para definir las constantes y técnicamente esto siempre sucede en el tiempo de ejecución. Sin embargo, la idea de tal constante es proporcionar un * valor * disponible *, * fijo *, que es la razón por la que generalmente declaras constantes en la parte superior de la secuencia de comandos. Hacerlo más tarde o en función de algunas condiciones es lo que consideraría un uso incorrecto porque entonces estás usando la constante como una variable y, en caso de redefinirlas o eliminarlas, consideraría que mal parchear, porque cambia el comportamiento interno de PHP. – Gordon