php: obtener el nombre de una clase que hereda en un método estático
-
21-09-2019 - |
Pregunta
De acuerdo, el título de la entrada puede ser un poco confuso.
Tengo este código:
class A {
public static foo() {
return get_called_class();
}
}
class B extends A {
}
class C {
public function bar() {
echo B::foo();
}
}
Salida: C
Lo que yo quiero entrar en foo () es el nombre de la clase de B. ¿Cómo puedo hacer esto sin cambios en la clase B I?
Saludos, Ene Oliver
PS:. __ __ CLASE, get_class () no están funcionando
Solución
Antes de PHP 5.3, esto no es posible sin hacks y se conoce como tarde estática de unión, un término Googleable.
Si está interesado, aquí está el artículo SO con respuestas: Faking Late enlace estático antes de php 5,3
Otros consejos
Creo que se podría utilizar el clase Reflexión incorporada para eso.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow