php: obtenir le nom d'une classe héritant d'une méthode statique
-
21-09-2019 - |
Question
D'accord, le titre de poste peut être un peu déroutant.
J'ai ce code:
class A {
public static foo() {
return get_called_class();
}
}
class B extends A {
}
class C {
public function bar() {
echo B::foo();
}
}
Sortie: C
Ce que je veux obtenir dans foo () est le nom de la classe de B. Comment puis-je faire cela sans changements dans la classe B?
Cordialement, Jan Oliver
PS:. __ __ CLASSE, get_class () ne fonctionnent pas
La solution
Avant PHP 5.3, cela est impossible sans hacks et est connu comme la liaison tardive statique, un terme googleable.
Si vous êtes intéressé, voici l'article SO avec des réponses: Simuler Reliure statique avant la fin php 5.3
Autres conseils
Je pense que vous pouvez utiliser le intégré classe de réflexion pour cela.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow