"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-01
Parcourir:990

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

Appel de fonctions de classe enfant à partir d'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 :

class whale { ... }
class fish extends whale { ... }

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.

abstract class whale {
  function __construct() { ... }
  function myfunc() { $this->test(); }
  abstract function test();
}

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

class fish extends whale {
  function __construct() { parent::__construct(); }
  function test() { echo "So you managed to call me !!"; }
}

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.

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

En utilisant des classes abstraites, nous appliquons un héritage approprié et garantissons 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.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729297456. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3