Maison  >  Article  >  développement back-end  >  Comment appeler des fonctions de classe enfant à partir de la classe parent en PHP à l'aide de classes abstraites ?

Comment appeler des fonctions de classe enfant à partir de la classe parent en PHP à l'aide de classes abstraites ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-19 08:25:02878parcourir

How to Call Child Class Functions from Parent Class in PHP Using Abstract Classes?

Appel de fonctions de classe enfant depuis une classe parent

En PHP, il est possible d'appeler une fonction depuis une classe enfant au sein d'une classe parent, mais cela nécessite une planification minutieuse.

Considérez l'exemple de code suivant :

<code class="php">class whale { ... }
class fish extends whale { ... }</code>

Dans cet exemple, nous avons une classe baleine et une classe poisson qui en hérite. Le but est d'appeler la fonction test() de la classe fish au sein de la fonction myfunc() de la classe baleine.

Solution : utiliser des classes abstraites

Pour y parvenir cela, nous pouvons exploiter les classes abstraites. Une classe abstraite impose l'implémentation de certaines méthodes dans ses classes enfants.

<code class="php">abstract class whale {
  function __construct() { ... }
  function myfunc() { $this->test(); }
  abstract function test();
}</code>

Dans la classe baleine mise à jour, nous déclarons maintenant myfunc() et test() comme méthodes abstraites. myfunc() appellera test(), qui doit être implémenté dans la classe enfant.

<code class="php">class fish extends whale {
  function __construct() { parent::__construct(); }
  function test() { echo "So you managed to call me !!"; }
}</code>

Dans la classe fish, nous fournissons une implémentation pour test(). Cela garantit que les exigences abstraites de la classe parent sont remplies.

Avec cette configuration, nous pouvons maintenant appeler la fonction test() depuis fish dans myfunc() de la classe baleine.

<code class="php">$fish = new fish();
$fish->test(); // Output: So you managed to call me !!
$fish->myfunc(); // Output: So you managed to call me !!</code>

En utilisant des classes abstraites, nous appliquons un héritage approprié et veillons à ce que les classes enfants implémentent les méthodes requises. Cela nous permet d'appeler de manière transparente les fonctions de classe enfant à partir des classes parent.

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!

Déclaration:
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