Soalan:
Pertimbangkan kod berikut untuk menggambarkan cabaran:
<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>
Memandangkan kelas yang ditakrifkan di atas, bagaimanakah kita boleh mengakses fungsi "ujian" kelas anak ("ikan") dengan berkesan dari dalam kelas induk ("paus")?
Jawapan:
Dalam senario ini, konsep kelas abstrak dalam PHP menyediakan penyelesaian yang berdaya maju. Kelas abstrak memberi mandat bahawa mana-mana kelas yang mewarisi daripadanya mesti melaksanakan fungsi atau kaedah tertentu.
Kod Disemak:
<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>
Penjelasan:
Dengan mengisytiharkan "paus" sebagai kelas abstrak dan menyertakan "ujian" kaedah abstrak, kami menguatkuasakan keperluan untuk kelas kanak-kanak untuk melaksanakan fungsi "ujian". Ini membenarkan fungsi "myfunc" dalam kelas "whale" untuk menggunakan "ujian" secara langsung.
Nota: Kelas abstrak tidak membenarkan instantiasi objek; oleh itu, ia berfungsi semata-mata sebagai pelan tindakan untuk kelas kanak-kanak untuk mewarisi dan melaksanakan kaedah yang diperlukan.
Atas ialah kandungan terperinci Bagaimana untuk Memanggil Fungsi dari Kelas Kanak-Kanak Dalam Kelas Induk dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!