⊗ppOpMgGP 88 of 107 menu

Mendapatkan Sifat melalui Sihir dalam OOP dalam PHP

Kaedah ajaib seterusnya yang akan kita bincangkan dipanggil __get. Kaedah ini dicetuskan apabila cuba membaca nilai sifat persendirian atau sifat yang dilindungi.

Jika melaksanakan kaedah __get dalam mana-mana kelas, semua akses kepada sifat yang tidak wujud atau tersembunyi akan diuruskan oleh kaedah ini.

Pada masa yang sama, PHP secara automatik akan menghantar nama sifat yang diminta ke parameter pertama kaedah ini, dan nilai yang dipulangkan oleh kaedah ini akan diterima sebagai nilai sifat yang diakses.

Kemungkinan besar masih tidak begitu jelas bagaimana ini berfungsi, jadi mari kita lihat contoh praktikal. Katakan kita mempunyai kelas Test dengan sifat persendirian dan awam:

<?php class Test { public $prop1 = 1; // sifat awam private $prop2 = 2; // sifat persendirian } ?>

Mari tambahkan kaedah ajaib __get ke dalam kelas kita, yang pada mulanya hanya akan memulangkan nama sifat yang diakses:

<?php class Test { public $prop1 = 1; private $prop2 = 2; public function __get($property) { return $property; // hanya pulangkan nama sifat } } ?>

Mari kita uji fungsi kaedah ajaib yang dibuat. Mari akses tiga jenis sifat: kepada sifat awam, kepada sifat persendirian dan kepada sifat yang tidak wujud:

<?php $test = new Test; // Mengakses sifat awam: echo $test->prop1; // akan memaparkan 1 - iaitu nilai sifat // Mengakses sifat persendirian: echo $test->prop2; // akan memaparkan 'prop2' - nama sifat // Mengakses sifat yang tidak wujud: echo $test->prop3; // akan memaparkan 'prop3' - nama sifat ?>

Seperti yang anda lihat, kaedah ajaib kita bertindak balas kepada akses kepada sifat persendirian dan yang tidak wujud, tetapi mengabaikan akses kepada sifat awam - ia berfungsi seperti sebelumnya.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak