Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengakses Hartanah Objek Dilindungi dalam Versi PHP Lama (Pra-5.5)?
Akses Sifat Objek Dilindungi dalam PHP
pengaturcaraan berorientasikan objek PHP menyediakan tiga pengubah suai akses: awam, dilindungi dan peribadi. Walau bagaimanapun, ketidakupayaan untuk mengakses hartanah yang dilindungi secara langsung boleh mengecewakan apabila bekerja dengan objek tertentu. Artikel ini meneroka penyelesaian untuk mendapatkan semula sifat yang dilindungi dalam versi PHP sebelum 5.5.
ReflectionClass to the Rescue
Sebelum PHP 5.5, kelas ReflectionClass menawarkan kaedah untuk mengakses harta yang dilindungi. Fungsi berikut menunjukkan cara:
function accessProtected($obj, $prop) { $reflection = new ReflectionClass($obj); $property = $reflection->getProperty($prop); $property->setAccessible(true); return $property->getValue($obj); }
Dengan menggunakan fungsi ini, anda boleh mengakses sifat yang dilindungi dengan menghantar objek dan nama sifat sebagai argumen. Sebagai contoh, memandangkan objek dalam contoh anda:
$value = accessProtected($obj, '_value');
Kaedah ini akan mengambil semula sifat _value yang dilindungi dan menyimpannya dalam pembolehubah $value.
Nota untuk PHP 5.2 .17
Walaupun penyelesaian ReflectionClass berkesan dalam persekitaran setempat anda, ia mungkin tidak tersedia pada pelayan yang menjalankan PHP versi 5.2.17. Malangnya, tiada kaedah alternatif untuk mengakses sifat yang dilindungi dalam versi PHP sedemikian.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Hartanah Objek Dilindungi dalam Versi PHP Lama (Pra-5.5)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!