Rumah >pembangunan bahagian belakang >tutorial php >Notis PHP: Cuba untuk mendapatkan harta penyelesaian bukan objek

Notis PHP: Cuba untuk mendapatkan harta penyelesaian bukan objek

WBOY
WBOYasal
2023-06-24 21:34:172112semak imbas

Notis PHP: Mencuba untuk mendapatkan sifat penyelesaian bukan objek

Apabila anda sedang membangun menggunakan PHP, anda mungkin menghadapi mesej ralat ini: "Notis: Mencuba mendapatkan sifat bukan objek Ralat ini biasanya kerana anda sedang menggunakan objek yang tidak dimulakan, atau objek anda telah kehilangan rujukan dalam sekeping kod tertentu, dan sifat tidak boleh diakses dengan betul. Dalam artikel ini, kami akan memperkenalkan beberapa cara untuk menyelesaikan masalah ini.

  1. Semak sama ada objek dimulakan dengan betul

Dalam PHP, apabila anda mentakrifkan objek, anda perlu menggunakan kata kunci "baharu" untuk memperuntukkan ruang memori untuknya. Jika anda tidak memulakan objek dengan betul, anda akan menghadapi mesej ralat "Mencuba mendapatkan harta bukan objek" semasa mengakses sifat objek.

Oleh itu, anda perlu menyemak sama ada objek anda dimulakan dengan betul. Anda boleh menyemak sama ada kelas pembolehubah $myObject di instantiated dengan betul:

if (!is_object($myObject) {
    $myObject = new MyClass();
}
  1. Semak jika rujukan kepada objek hilang

Apabila anda menggunakan objek, anda perlu memberi perhatian sama ada rujukan kepada objek itu lulus atau kalah. Jika anda membuat ralat semasa menghantar rujukan objek, atau kehilangan rujukan objek dalam sekeping kod tertentu, ia akan menghasilkan mesej ralat "Mencuba untuk mendapatkan harta bukan objek".

Anda boleh menggunakan fungsi var_dump() untuk menyemak sama ada rujukan objek anda diluluskan dengan betul:

function myFunction(&$myObject) {
    var_dump($myObject);
}
  1. Periksa sama ada objek dimusnahkan dengan betul

Dalam beberapa kes, apabila anda memusnahkan objek, anda masih mahu Jika anda terus mengendalikannya, anda akan menemui mesej ralat "Mencuba untuk mendapatkan harta bukan objek".

Jadi apabila memusnahkan objek, anda perlu memastikan bahawa anda tidak akan mengendalikan objek yang dimusnahkan itu lagi. Anda boleh menggunakan fungsi is_object() untuk menyemak sama ada objek dimulakan dengan betul sebelum memusnahkannya:

if (is_object($myObject)) {
    unset($myObject);
}
  1. Semak sama ada kod anda betul

Dalam beberapa kes, kod anda mungkin tidak salah, tetapi anda Anda masih akan menghadapi mesej ralat "Mencuba untuk mendapatkan harta bukan objek". Dalam kes ini, anda perlu menyemak sama ada sifat objek anda diakses dengan betul.

Anda boleh menggunakan fungsi isset() untuk menyemak sama ada sifat objek anda dimulakan dengan betul:

if (isset($myObject->myProperty)) {
    // do something
}

Ringkasan

Apabila anda menemui mesej ralat "Mencuba untuk mendapatkan harta bukan objek", anda harus menyemak dahulu Sama ada objek anda dimulakan dengan betul. Jika anda telah memulakan objek anda dengan betul, anda perlu menyemak sama ada rujukan objek anda diluluskan dan hilang dengan betul. Akhir sekali, anda perlu menyemak sama ada kod anda ditulis dengan betul. Dengan mengikuti langkah-langkah ini, anda boleh menyelesaikan mesej ralat "Mencuba untuk mendapatkan harta bukan objek".

Atas ialah kandungan terperinci Notis PHP: Cuba untuk mendapatkan harta penyelesaian bukan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn