Maison  >  Article  >  développement back-end  >  Comment appeler les fonctions des classes enfants à partir des classes parents en PHP ?

Comment appeler les fonctions des classes enfants à partir des classes parents en PHP ?

DDD
DDDoriginal
2024-10-19 08:28:30866parcourir

How to Call Functions of Child Classes from Parent Classes in PHP?

Comment appeler les fonctions des classes enfants à partir des classes parents en PHP

En PHP, une tâche courante consiste à invoquer des fonctions définies dans les classes enfants à partir des classes parents. Prenons l'exemple suivant :

<code class="php">class whale
{
  public function __construct()
  {
    // some code here
  }

  public function myfunc()
  {
    // How do I call the "test" function of the fish class here?
  }
}

class fish extends whale
{
  public function __construct()
  {
    parent::__construct();
  }

  public function test()
  {
    echo "So you managed to call me !!";
  }
}</code>

Solution

Une solution consiste à utiliser des classes abstraites, qui définissent des fonctions essentielles qui doivent être implémentées en héritant des classes. Voici un code modifié :

<code class="php">abstract class whale
{
  public function __construct()
  {
    // some code here
  }

  public function myfunc()
  {
    $this->test();
  }

  abstract public function test();
}

class fish extends whale
{
  public function __construct()
  {
    parent::__construct();
  }

  public function test()
  {
    echo "So you managed to call me !!";
  }
}

$fish = new fish();
$fish->test();
$fish->myfunc();</code>

Avec cette modification, vous pouvez invoquer la fonction test de la classe fish depuis la fonction myfunc de la classe baleine en appelant $this->test(). Cette approche garantit que les classes enfants doivent implémenter la fonction de test.

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