«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как вызвать функции дочерних классов из родительских классов в PHP?

Как вызвать функции дочерних классов из родительских классов в PHP?

Опубликовано 4 ноября 2024 г.
Просматривать:980

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

Как вызывать функции дочерних классов из родительских классов в PHP

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

Решение

Одним из решений является использование абстрактных классов, определяющих основные функции, которые должны быть реализованы путем наследования классов. Вот измененный код:

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

С помощью этой модификации вы можете вызвать тестовую функцию класса fish из функции myfunc класса whale, вызвав $this->test(). Этот подход гарантирует, что дочерние классы должны реализовывать тестовую функцию.

Заявление о выпуске Эта статья перепечатана по адресу: 1729297696. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3