Tengo una función estática en una clase que necesita ser llamada desde varias clases secundarias. Necesito una constante de la clase secundaria que llama para estar disponible en esa función. Para tener estas constantes disponibles en otros lugares, las clases secundarias tienen una función que devuelve el valor de esa constante (php 5.2.9).Constante de hijo llamado no está disponible en la función estática en el padre
Sin embargo, cuando estoy en la clase principal, parece que no puedo acceder a esa constante, ni con la función ni directamente. ¿Es eso posible en php 5.2.9 o necesito pasarlo como argumento?
Ésta es una versión simple del código:
abstract class ParentClass {
static function DoSomething() {
$not_working = self::show_const();
$not_working_either = self::SOME_CONST;
return 'working';
}
}
class ChildClass extends ParentClass {
const SOME_CONST = 'some string';
function show_const() {
return self::SOME_CONST;
}
}
$result = ChildClass::DoSomething();
Editar: el error generado es:
- La llamada al método definido ParentClass :: show_const() (por función)
- Constante de clase no definida 'SOME_CONST' (utilizando self :: SOME_CONST)
Cuál es el mensaje de error que se está generando? –