Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menyelesaikan Ralat 'Mencipta objek lalai daripada nilai kosong' dalam PHP?

Bagaimana untuk Menyelesaikan Ralat 'Mencipta objek lalai daripada nilai kosong' dalam PHP?

Linda Hamilton
Lepaskan: 2024-12-19 12:34:09
asal
724 orang telah melayarinya

How to Solve the

Mengendalikan Ralat "Mencipta Objek Lalai daripada Nilai Kosong" dalam PHP

Dalam versi PHP >= 5.4, anda mungkin menghadapi ralat " Mencipta objek lalai daripada nilai kosong" apabila cuba mengakses harta pada objek yang tidak dimulakan. Ralat ini menandakan bahawa pembolehubah yang dirujuk adalah sama ada batal atau bukan objek.

Penyelesaian Disyorkan:

Untuk menyelesaikan isu ini, isytiharkan pembolehubah sebagai contoh stdClass objek dalam ruang nama global sebelum mengaksesnya sifat:

$res = new \stdClass();
$res->success = false;
Salin selepas log masuk

Penjelasan:

Dengan amaran E_STRICT didayakan dalam PHP <= 5.3.x atau error_reporting ditetapkan kepada E_WARNING dalam PHP >= 5.4, PHP menguatkuasakan manipulasi objek dengan tegas. Percubaan untuk mengakses sifat pada pembolehubah nol atau bukan objek akan mencetuskan ralat. Mengisytiharkan pembolehubah sebagai objek stdClass memastikan bahawa ia adalah contoh objek dan boleh mempunyai sifat yang ditetapkan kepadanya.

Pendekatan Alternatif:

Sebagai alternatif, anda boleh menggunakan yang berikut pendekatan untuk mengelakkan ralat ini:

  • Periksa sama ada pembolehubah adalah nol atau bukan objek sebelum mengakses sifatnya:
if (!isset($res) || !is_object($res)) {
    $res = new \stdClass();
}
Salin selepas log masuk
  • Secara langsung objek dengan sifat yang dikehendaki:
$res = (object) ['success' => false];
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Mencipta objek lalai daripada nilai kosong' dalam PHP?. 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