Récupération du nom de classe à partir d'appels statiques dans des classes PHP étendues
Problème :
Un PHP Une hiérarchie de classes existe, avec une classe de base Action et une classe étendue MyAction. Une méthode statique n() dans la classe Action renvoie son nom de classe. Cependant, lorsque la méthode est appelée depuis la classe étendue MyAction, elle renvoie "Action".
Question :
Est-il possible de récupérer le nom de classe correct à partir d'un appel statique dans la classe étendue ?
Réponse :
Option 1 : Méthode non statique
Si la méthode est modifiée pour être non statique et utilisez à la place le mot-clé $this, la fonction get_class($this) peut être utilisée pour obtenir le nom de classe de la classe étendue.
Option 2 : Liaisons statiques tardives ( PHP 5.3 )
Les liaisons statiques tardives introduisent la fonction get_call_class(), qui résout la classe cible d'exécution pour les appels de méthode statique. Cela permet de récupérer le nom de la classe directement dans la méthode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!