Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memanggil Fungsi Kelas Kanak-Kanak daripada Kelas Induk dalam PHP?

Bagaimana untuk Memanggil Fungsi Kelas Kanak-Kanak daripada Kelas Induk dalam PHP?

DDD
DDDasal
2024-10-19 08:28:30946semak imbas

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

Cara Memanggil Fungsi Kelas Kanak-kanak daripada Kelas Induk dalam PHP

Dalam PHP, tugas biasa ialah menggunakan fungsi yang ditakrifkan dalam kelas anak dari dalam kelas induk. Pertimbangkan contoh berikut:

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

Penyelesaian

Satu penyelesaian ialah menggunakan kelas abstrak, yang mentakrifkan fungsi penting yang mesti dilaksanakan dengan mewarisi kelas. Berikut ialah kod yang diubah suai:

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

Dengan pengubahsuaian ini, anda boleh menggunakan fungsi ujian kelas ikan daripada fungsi myfunc kelas ikan paus dengan memanggil $this->test(). Pendekatan ini memastikan bahawa kelas kanak-kanak mesti melaksanakan fungsi ujian.

Atas ialah kandungan terperinci Bagaimana untuk Memanggil Fungsi Kelas Kanak-Kanak daripada Kelas Induk dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn