Maison > développement back-end > tutoriel php > Comment appeler des fonctions d'une classe enfant au sein d'une classe parent en PHP ?

Comment appeler des fonctions d'une classe enfant au sein d'une classe parent en PHP ?

DDD
Libérer: 2024-10-19 08:27:30
original
256 Les gens l'ont consulté

How to Call Functions from a Child Class Within a Parent Class in PHP?

Comment appeler des fonctions de classe enfant à partir de la classe parent en PHP

Question :

Considérez le code suivant pour illustrer le challenge :

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

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

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

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

}</code>
Copier après la connexion

Compte tenu des classes définies ci-dessus, comment peut-on accéder efficacement à la fonction "test" de la classe enfant ("poisson") depuis l'intérieur de la classe parent ("baleine") ?

Réponse :

Dans ce scénario, le concept de classes abstraites en PHP fournit une solution viable. Une classe abstraite exige que toutes les classes qui en héritent implémentent des fonctions ou des méthodes spécifiques.

Code révisé :

<code class="php">abstract class whale
{

  function __construct()
  {
    // some code here
  }

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

  abstract function test();
}


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

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

}


$fish = new fish();
$fish->test();
$fish->myfunc();</code>
Copier après la connexion

Explication :

En déclarant "baleine" comme classe abstraite et en incluant une méthode abstraite "test", nous imposons l'exigence pour les classes enfants d'implémenter la fonction "test". Cela permet à la fonction "myfunc" de la classe "whale" d'invoquer directement "test".

Remarque : Les classes abstraites n'autorisent pas l'instanciation d'objets ; par conséquent, ils servent uniquement de modèle aux classes enfants pour hériter et mettre en œuvre les méthodes nécessaires.

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
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal