Rumah > Artikel > pembangunan bahagian belakang > Notis PHP: Mencuba untuk mendapatkan 'penyelesaian' harta bagi penyelesaian bukan objek
Apabila kami membangunkan menggunakan PHP, kadangkala kami menemui mesej ralat "Mencuba untuk mendapatkan sifat 'bukan objek'". Sebab ralat ini secara amnya ialah program mengakses objek yang tidak wujud atau tidak instantiated, menyebabkan parser PHP tidak dapat mengenali sifat atau kaedah objek tersebut.
Jadi, bagaimana untuk menyelesaikan ralat ini? Di bawah ini saya akan memperkenalkan anda kepada beberapa penyelesaian yang mungkin.
1. Semak kod
Pertama, kita perlu menyemak segmen kod yang salah. Kadangkala apabila kami menulis atur cara, kami secara tidak sengaja memadamkan penyataan permulaan atau penugasan objek, menyebabkan atur cara tidak dapat mencari objek yang ditentukan apabila melaksanakan kaedah atau akses harta seterusnya.
Oleh itu, kita perlu memastikan bahawa setiap objek dalam program telah dimulakan dan ditetapkan dengan betul. Jika anda tidak pasti sama ada ia betul, anda boleh menambah beberapa kenyataan keluaran nyahpepijat untuk menyemak status objek.
2. Gunakan fungsi isset dan kosong untuk menentukan objek
Dalam PHP, anda boleh menggunakan fungsi isset dan kosong untuk menentukan sama ada pembolehubah ditetapkan atau kosong. Oleh itu, kita boleh menggunakan isset dan fungsi kosong untuk membuat pertimbangan sebelum mengakses objek untuk mengelakkan ralat yang disebabkan oleh program tidak mencari objek.
Sebagai contoh, andaikan kita ingin mengakses jantina atribut objek bernama $user, kita boleh membuat pertimbangan berikut:
if(isset($user) && !empty($user )) {
echo $user->sex;
}
Dengan cara ini, atribut jantina objek akan dikeluarkan hanya apabila objek itu benar-benar wujud, jika tidak, program tidak akan melakukan apa-apa.
3. Gunakan pernyataan cuba-tangkap
Apabila kami tidak dapat menentukan aliran pelaksanaan program, kami boleh menggunakan pernyataan cuba-tangkap. Pernyataan cuba akan melaksanakan sekeping kod yang perlu dicuba Pernyataan tangkapan akan menangkap pengecualian yang dilemparkan dalam pernyataan cuba dan melaksanakan kod selepas menangkap pengecualian.
Kita boleh cuba mengakses kaedah atau sifat objek dalam pernyataan cuba Jika ralat "Mencuba untuk mendapatkan sifat 'bukan objek" berlaku, kita boleh menangani ralat dalam kenyataan tangkapan. Contohnya:
cuba{
echo $user->sex;
}catch(Exception $e){
echo "Ralat berlaku : ” . $e->getMessage();
}
Dengan cara ini, apabila ralat berlaku, kita boleh menangkap dan mengendalikannya.
Secara amnya, tidak kira penyelesaian mana yang digunakan, kita perlu memastikan pemulaan dan penetapan objek yang betul dalam atur cara sebanyak mungkin untuk mengelakkan situasi di mana objek tidak dapat ditemui. Pada masa yang sama, menggunakan lebih banyak keluaran penyahpepijatan dan pengendalian pengecualian semasa pembangunan juga boleh membantu kami mencari ralat dengan cepat dan membetulkannya.
Atas ialah kandungan terperinci Notis PHP: Mencuba untuk mendapatkan 'penyelesaian' harta bagi penyelesaian bukan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!