Rumah >pembangunan bahagian belakang >tutorial php >Cara Menentukan Kewujudan Elemen dalam Tatasusunan untuk Mengelakkan Ralat

Cara Menentukan Kewujudan Elemen dalam Tatasusunan untuk Mengelakkan Ralat

Linda Hamilton
Linda Hamiltonasal
2024-10-19 06:20:02620semak imbas

How to Determine the Existence of Elements in an Array to Avoid Errors

Menentukan Kewujudan Elemen Tatasusunan

Apabila menyemak kehadiran elemen dalam tatasusunan, pendekatan yang anda terangkan boleh membawa kepada tidak ditentukan ralat indeks. Untuk menangani isu ini dengan berkesan, anda boleh menggunakan sama ada binaan isset atau fungsi array_key_exists.

Menggunakan isset

isset ialah pilihan pilihan untuk pengoptimuman kelajuan. Ia menyemak kewujudan unsur, tanpa mengira nilainya. Walau bagaimanapun, ia mengembalikan palsu untuk elemen yang telah ditetapkan secara eksplisit kepada NULL.

Menggunakan array_key_exists

array_key_exists menentukan sama ada kunci tertentu wujud dalam tatasusunan. Tidak seperti isset, ia tidak menganggap nilai yang dikaitkan dengan kunci.

Contoh:

Pertimbangkan tatasusunan berikut:

<code class="php">$a = array(
    123 => 'glop',
    456 => null,
);</code>

Uji dengan isset:

<code class="php">var_dump(isset($a[123])); // true (key exists with a non-null value)
var_dump(isset($a[456])); // false (key exists with a null value)
var_dump(isset($a[789])); // false (key does not exist)</code>

Uji dengan array_key_exists:

<code class="php">var_dump(array_key_exists(123, $a)); // true (key exists regardless of value)
var_dump(array_key_exists(456, $a)); // true (key exists regardless of value)
var_dump(array_key_exists(789, $a)); // false (key does not exist)</code>

Kemas Kini Kod:

Dalam kod anda, anda boleh menggunakan isset untuk menulis semula cek:

<code class="php">if (!isset(self::$instances[$instanceKey])) {
    $instances[$instanceKey] = $theInstance;
}</code>

Atas ialah kandungan terperinci Cara Menentukan Kewujudan Elemen dalam Tatasusunan untuk Mengelakkan Ralat. 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