vi este ejemplo de php.net:¿Cómo acceder a la constante definida en la clase hija desde las funciones de clase primaria?
<?php
class MyClass {
const MY_CONST = "yonder";
public function __construct() {
$c = get_class($this);
echo $c::MY_CONST;
}
}
class ChildClass extends MyClass {
const MY_CONST = "bar";
}
$x = new ChildClass(); // prints 'bar'
$y = new MyClass(); // prints 'yonder'
?>
Pero $ c :: MY_CONST se reconoce solamente en la versión 5.3.0 o posterior. La clase que estoy escribiendo se puede distribuir mucho.
Básicamente, he definido una constante en ChildClass y una de las funciones en MyClass (clase padre) necesita usar la constante. ¿Alguna idea?
No entiendo por qué las personas están profundizando en OOP en otras respuestas. Su solución es la única correcta y mucho más simple –
Hay algo incorrecto en el acceso a un 'const' mediante el uso de la palabra clave' static'. ¿Podrías explicar por qué funciona? Los documentos PHP también me confundieron en esto. Gracias. – pavlindrom
O 'self :: MY_CONST' – checksum