Bagaimana untuk Mengakses Pembolehubah Kelas Induk dalam PHP?

Susan Sarandon
Lepaskan: 2024-10-22 22:08:29
asal
258 orang telah melayarinya

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'
    }
}
Salin selepas log masuk

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;
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!