= 5.4, anda mungkin menghadapi ralat "Mencipta objek lalai..."/> = 5.4, anda mungkin menghadapi ralat "Mencipta objek lalai...">

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
Linda Hamiltonasal
2024-12-19 12:34:09729semak imbas

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;

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();
}
  • Secara langsung objek dengan sifat yang dikehendaki:
$res = (object) ['success' => false];

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!

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