Akses Pembolehubah Kelas Induk dalam PHP
Dalam pengaturcaraan berorientasikan objek, mengakses pembolehubah kelas induk dalam kelas anak boleh memberikan cabaran. Pertimbangkan kod di bawah:
<code class="php">class A { private $aa; protected $bb = 'parent bb'; // ... } class B extends A { function childfunction() { echo parent::$bb; // Fatal error: Undefined class constant 'bb' } } </code>
Percubaan untuk mengakses pembolehubah $bb menggunakan induk::$bb mengakibatkan ralat. Ini kerana pembolehubah dilindungi dan pembolehubah yang dilindungi hanya boleh diakses dalam kelas dan kelas anaknya.
Penyelesaian: Menggunakan $this->bb
Untuk akses pembolehubah $bb dalam kelas kanak-kanak dengan betul, gunakan $this->bb. Sintaks ini merujuk kepada pembolehubah contoh objek semasa, yang termasuk pembolehubah yang diwarisi daripada kelas induk.
<code class="php">echo $this->bb;</code>
Pembolehubah $bb diwarisi dan bukan peribadi, jadi ia adalah sebahagian daripada objek semasa dan boleh boleh diakses menggunakan kata kunci $this.
Maklumat Tambahan
Untuk situasi di mana anda perlu mengubah suai tingkah laku kaedah daripada kelas induk, gunakan induk::. Sebagai contoh, pertimbangkan perkara berikut:
<code class="php">class Airplane { private $pilot; public function __construct( $pilot ) { $this->pilot = $pilot; } } class Bomber extends Airplane { private $navigator; public function __construct( $pilot, $navigator ) { $this->navigator = $navigator; parent::__construct( $pilot ); // Assign to this->pilot } }</code>
Di sini, ibu bapa:: memanjangkan pembina daripada kelas Airplane untuk menambah pembolehubah $navigator. Ini membolehkan anda mengikut prinsip KERING sambil menyediakan fungsi yang diingini.
Atas ialah kandungan terperinci Cara Mengakses Pembolehubah Kelas Induk dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!