php: ottenere il nome di una classe che eredita in un metodo statico
-
21-09-2019 - |
Domanda
D'accordo, il titolo del post potrebbe essere un po 'di confusione.
ho questo codice:
class A {
public static foo() {
return get_called_class();
}
}
class B extends A {
}
class C {
public function bar() {
echo B::foo();
}
}
Output: C
Quello che voglio entrare in foo () è il nome della classe di B. Come posso fare questo senza cambiamenti nella classe B?
Saluti, Jan Oliver
PS:. __ __ CLASS, get_class () non funzionano
Soluzione
Prima di PHP 5.3, questo non è possibile senza hack ed è noto come ritardo binding statico, un termine Googleable.
Se siete interessati, ecco l'articolo SO con risposte: Faking tardo binding statico prima di PHP 5.3
Altri suggerimenti
Penso che si potrebbe utilizzare il classe Riflessione built-in per questo.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow