Puis-je récupérer le nom de classe correct à partir d'un appel de méthode statique dans une classe PHP étendue ?

Linda Hamilton
Libérer: 2024-11-01 15:57:30
original
839 Les gens l'ont consulté

Can I retrieve the correct class name from a static method call in an extended PHP class?

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!