Mengakses Sifat Objek Dilindungi dengan PHP
Mendapat dan menetapkan sifat dilindungi objek boleh mencabar dalam PHP, terutamanya untuk objek yang kompleks atau mendalam struktur bersarang. Untuk mengatasinya, pengaturcara sering menggunakan kelas ReflectionClass PHP.
Walau bagaimanapun, katakan anda menghadapi masalah menggunakan ReflectionClass: Contohnya, pada pelayan dengan versi PHP yang lebih lama seperti 5.2.17, yang tidak menyokong ini ciri. Dalam kes sedemikian, penyelesaian alternatif diperlukan.
Pertimbangkan objek berikut:
$obj = new Field_Form_Element_Location();
Untuk mendapatkan semula harta _nilai yang dilindungi objek ini, ikut langkah berikut:
function accessProtected($obj, $prop) { $reflection = new ReflectionClass($obj); $property = $reflection->getProperty($prop); $property->setAccessible(true); return $property->getValue($obj); }
$value = accessProtected($obj, '_value');
Pendekatan ini memanfaatkan keupayaan pantulan asli PHP untuk membenarkan akses kepada yang dilindungi hartanah, walaupun dalam situasi di mana ReflectionClass tidak disokong. Ia menyediakan penyelesaian yang teguh untuk bekerja dengan objek kompleks dan mengendalikan sifat yang dilindungi dalam PHP.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Hartanah Objek Dilindungi dalam Versi PHP Lama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!