Rumah > pembangunan bahagian belakang > tutorial php > Mengapa PHP Melemparkan Ralat 'Membuat objek lalai daripada nilai kosong'?

Mengapa PHP Melemparkan Ralat 'Membuat objek lalai daripada nilai kosong'?

Mary-Kate Olsen
Lepaskan: 2024-12-19 21:31:10
asal
117 orang telah melayarinya

Why Does PHP Throw a

Memahami Ralat "Mencipta Objek Lalai daripada Nilai Kosong" PHP

Ralat "Membuat objek lalai daripada nilai kosong" PHP sering menjelma apabila anda mengakses sifat yang kelihatan tidak ditetapkan pembolehubah. Ralat ini adalah hasil daripada pengendalian ralat ketat PHP dalam versi 5.4 dan seterusnya.

Ralat ini dicetuskan apabila PHP cuba untuk memulakan objek lalai untuk pembolehubah yang belum menjadi objek atau ditetapkan secara eksplisit kepada NULL. Contohnya:

$res = NULL;
$res->success = false;
Salin selepas log masuk

Dalam PHP 5.3 dan lebih awal, kod ini tidak akan menghasilkan sebarang ralat. Walau bagaimanapun, dalam PHP versi 5.4 dan ke atas, amaran E_STRICT (atau E_WARNINGs jika anda mempunyai error_reporting ditetapkan kepada sekurang-kurangnya tahap ini) didayakan, menyebabkan ralat "Mencipta objek lalai daripada nilai kosong".

Adakah $res Perlu Diisytiharkan Dahulu?

Tidak, mengisytiharkan $res sebagai objek bukanlah perlu. Walau bagaimanapun, anda mesti memastikan bahawa $res ialah objek sebelum mengakses sifatnya. Untuk melakukan ini, anda boleh sama ada memulakannya sebagai objek kelas tertentu atau menggunakan objek stdClass generik:

// Initialize as a specific class
$res = new MyClassName();

// Initialize as a generic object
$res = new \stdClass();
Salin selepas log masuk

Setelah $res ialah objek, anda boleh mengakses dan mengubah suai sifatnya tanpa menemui " Mencipta objek lalai daripada ralat nilai kosong".

$res->success = false; // No error
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa PHP Melemparkan Ralat 'Membuat objek lalai daripada nilai kosong'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan