В 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(). Этот подход гарантирует, что дочерние классы должны реализовывать тестовую функцию.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3