Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengakses Pembolehubah Kelas Induk dalam PHP?

Bagaimana untuk Mengakses Pembolehubah Kelas Induk dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-10-22 22:08:29355semak imbas

How to Access Parent Class Variables in PHP?

Akses Pembolehubah Kelas Induk dalam PHP: Panduan Komprehensif

Mengakses pembolehubah kelas induk dalam PHP adalah penting untuk memahami pewarisan dan pengaturcaraan berorientasikan objek konsep. Dalam contoh yang diberikan di bawah, kami mempunyai dua kelas, A dan B, dengan kelas A sebagai kelas induk dan kelas B sebagai kelas anak.

class A {
    private $aa;
    protected $bb = 'parent bb';
}

class B extends A {
    function childfunction() {
        echo parent::$bb; // Error: Undefined class constant 'bb'
    }
}

Isu timbul apabila kami cuba mengakses pembolehubah dilindungi (bb) kelas induk A daripada kelas anak B menggunakan induk::$bb. Ini mengakibatkan ralat maut kerana $bb ditakrifkan sebagai dilindungi, yang bermaksud ia boleh diakses dalam kelas itu sendiri dan oleh subkelas, tetapi tidak terus dari luar kelas.

Penyelesaian:

Untuk menyelesaikan isu ini, kita boleh menggunakan kata kunci $this yang merujuk kepada objek semasa:

echo $this->bb;

Kata kunci $this menyediakan akses kepada pembolehubah dan kaedah yang dilindungi dan persendirian dalam kelas semasa, membenarkan kami memaparkan nilai pembolehubah $bb dalam kes ini.

Maklumat Tambahan: Menggunakan induk::

Selain menggunakan $this, kita juga boleh gunakan sintaks induk:: untuk mengakses pembolehubah dan kaedah daripada kelas induk. Tidak seperti $this, parent:: digunakan apabila kita mahu sama ada mengatasi atau melanjutkan fungsi daripada kelas induk.

Sebagai contoh, katakan kita ingin mencipta kelas baharu yang memanjangkan kelas Airplane dan menambahkan sifat navigator :

class Airplane {
    private $pilot;
    function __construct($pilot) {
        $this->pilot = $pilot;
    }
}

class Bomber extends Airplane {
    private $navigator;
    function __construct($pilot, $navigator) {
        parent::__construct($pilot); // Call parent constructor
        $this->navigator = $navigator;
    }
}

Dalam senario ini, kami mengatasi kaedah __construct() dalam kelas Bomber, tetapi kami masih menggunakan parent::__construct() untuk memastikan bahawa fungsi asal kelas Airplane dikekalkan.

Memahami perbezaan antara $this dan parent:: adalah penting untuk memanfaatkan warisan dalam PHP dengan berkesan dan mencipta kod yang mantap dan boleh diselenggara.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pembolehubah 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