"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 les fonctions des classes enfants à partir des classes parents en PHP ?

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

Publié le 2024-11-04
Parcourir:818

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

Comment appeler des fonctions de classes enfants à partir de 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 :

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 !!";
  }
}

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

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();

Avec cette modification, vous pouvez invoquer la fonction test de la classe fish à partir de 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.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729297696. 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