Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengakses Pembolehubah Kelas Induk Dilindungi dalam PHP: Mengapa Gunakan `$this->bb` Daripada `parent::bb`?

Mengakses Pembolehubah Kelas Induk Dilindungi dalam PHP: Mengapa Gunakan `$this->bb` Daripada `parent::bb`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-22 21:20:29333semak imbas

Accessing Protected Parent Class Variables in PHP: Why Use `$this->bb` Atas `parent::bb`?bb` Over `parent::bb`?" />

Mengakses Pembolehubah Kelas Induk dalam PHP

Kod yang disediakan menunjukkan isu di mana kelas anak tidak dapat mengakses pembolehubah dilindungi $bb yang diwarisi daripada kelas induknya . Untuk menyelesaikan masalah ini, pembolehubah boleh diakses menggunakan sintaks $this->bb.

<code class="php">class A {
    private $aa;
    protected $bb = 'parent bb';

    function __construct($arg) {
       //do something..
    }

    private function parentmethod($arg2) {
       //do something..
    }
}

class B extends A {
    function __construct($arg) {
        parent::__construct($arg);
    }
    function childfunction() {
        echo $this->bb; // Outputs 'parent bb'
    }
}

$test = new B($some);
$test->childfunction();</code>

Menggunakan $this->bb membayangkan bahawa pembolehubah yang diwarisi kini merupakan sebahagian daripada objek semasa dan boleh diakses seperti mana-mana pembolehubah contoh lain.

Nota Tambahan:

Semasa menggunakan $this->bb menyelesaikan isu segera, adalah penting untuk memahami perbezaan antara $this -> dan induk:: apabila mengakses pembolehubah dan kaedah yang diwarisi.

$this-> merujuk kepada objek semasa, manakala induk:: merujuk kepada kelas induk. $ini-> boleh digunakan untuk mengakses pembolehubah yang diwarisi secara langsung, manakala induk:: digunakan untuk memanggil kaedah kelas induk atau mengakses pembolehubah statik kelas induk.

Sebagai contoh, jika anda ingin mengatasi kaedah kelas induk semasa masih mengakses yang asal kaedah daripada kelas induk, anda boleh menggunakan sintaks berikut:

<code class="php">class Child extends Parent {
    function myMethod() {
        parent::myMethod(); // Calls the parent class's myMethod()
    }
}</code>

Atas ialah kandungan terperinci Mengakses Pembolehubah Kelas Induk Dilindungi dalam PHP: Mengapa Gunakan `$this->bb` Daripada `parent::bb`?. 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