Apabila menggunakan bahasa PHP untuk pembangunan program, anda sering menghadapi mesej ralat ini: "Notis PHP: Indeks tidak ditentukan". Ini ialah mesej ralat biasa dalam bahasa PHP, yang bermaksud subskrip atau kunci tatasusunan yang tidak ditentukan dikendalikan, menyebabkan atur cara gagal untuk dilaksanakan seperti biasa. Artikel ini menerangkan punca dan penyelesaian kepada ralat ini.
1. Punca ralat
Indeks tatasusunan tidak ditentukan atau kunci biasanya merujuk kepada percubaan mengakses elemen yang tidak wujud dalam tatasusunan, jadi ralat "Indeks tidak ditentukan" akan berlaku. Ralat ini sering berlaku apabila menggunakan pembolehubah jenis tatasusunan dalam PHP Program ini membuang mesej ralat ini kerana mengakses nilai kunci yang tidak wujud.
Sebagai contoh, untuk kod PHP berikut:
<?php $arr = array( 'name' => 'Tom', 'age' => 18, 'sex' => 'male' ); echo $arr['hobby']; ?>
Selepas berjalan, anda akan menemui mesej ralat: "Notis PHP: Indeks tidak ditentukan: hobi". Ini kerana nilai utama "hobi" tidak ditakrifkan dalam tatasusunan, jadi sistem tidak dapat mencari nilai yang sepadan.
2. Penyelesaian
Untuk mengelak daripada mengakses subskrip tatasusunan atau nilai kunci yang tidak ditentukan, anda boleh terlebih dahulu menentukan sama ada elemen itu wujud wujud. Jika ia tidak wujud, pemprosesan elemen dilangkau. Anda boleh menggunakan fungsi array_key_exists() atau pernyataan isset() untuk membuat pertimbangan.
<?php $arr = array( 'name' => 'Tom', 'age' => 18, 'sex' => 'male' ); if (array_key_exists('hobby', $arr)) { echo $arr['hobby']; } ?>
Jika pernyataan isset() digunakan, kodnya adalah seperti berikut:
<?php $arr = array( 'name' => 'Tom', 'age' => 18, 'sex' => 'male' ); if (isset($arr['hobby'])) { echo $arr['hobby']; } ?>
Jika "hobi" wujud dalam tatasusunan, nilai yang sepadan akan dikeluarkan jika ia tidak wujud , tidak akan ada keluaran.
Untuk mengelakkan mesej ralat, anda boleh menentukan nilai lalai untuk elemen tertentu dalam tatasusunan. Contohnya:
<?php $arr = array( 'name' => 'Tom', 'age' => 18, 'sex' => 'male', 'hobby' => '' ); echo $arr['hobby']; ?>
Dalam kod di atas, elemen "hobi" ditakrifkan sebagai rentetan kosong untuk mengelakkan mesej ralat.
Dalam PHP, anda boleh menggunakan simbol @ untuk menyekat output mesej ralat. Contohnya, kod di atas boleh ditulis semula seperti berikut:
<?php $arr = array( 'name' => 'Tom', 'age' => 18, 'sex' => 'male' ); echo @$arr['hobby']; ?>
Jika nilai kunci yang tidak wujud diakses, tidak akan ada output.
Jika mesej ralat serupa muncul dalam sejumlah besar kod, anda boleh mematikan mesej ralat Notis dengan mengubah suai PHP.ini fail. Cari item konfigurasi error_reporting dalam fail PHP.ini dan ubah suainya kepada:
error_reporting = E_ALL & ~E_NOTICE
Ini boleh mematikan mesej ralat peringkat notis di seluruh dunia, tetapi ia juga mungkin menyekat maklumat berguna yang lain, jadi perhatian khusus diperlukan.
Ringkasnya, semasa proses pembangunan atur cara dalam bahasa PHP, kita harus sentiasa memberi perhatian kepada maklumat segera tersebut dan mengendalikannya dengan cara yang betul untuk memastikan operasi normal program dengan lebih baik.
Atas ialah kandungan terperinci Notis PHP: Indeks tidak ditentukan: penyelesaian dalam penyelesaian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!