Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Konstruk PHP Mana Yang Lebih Baik untuk Mengesahkan Kewujudan Elemen Array: isset atau array_key_exists?

Konstruk PHP Mana Yang Lebih Baik untuk Mengesahkan Kewujudan Elemen Array: isset atau array_key_exists?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-19 06:22:02446semak imbas

Which PHP Construct Is Better for Verifying Array Element Existence: isset or array_key_exists?

Menggunakan isset atau array_key_exists untuk Mengesahkan Kewujudan Elemen Tatasusunan

Apabila ingin memastikan kehadiran elemen tatasusunan, anda boleh menggunakan sama ada isset binaan bahasa atau fungsi array_key_exists.

isset

Pendekatan ini berpotensi lebih cekap kerana ia bukan fungsi. Walau bagaimanapun, ia mungkin kembali palsu jika elemen wujud tetapi mempunyai nilai NULL.

Pertimbangkan tatasusunan berikut:

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

Menggunakan isset untuk menguji kewujudan elemen:

<code class="php">var_dump(isset($a[123])); // true
var_dump(isset($a[456])); // false
var_dump(isset($a[789])); // false</code>

array_key_exists

Sebaliknya, array_key_exists menilai semata-mata kehadiran kunci, tanpa mengira nilainya.

Menggunakan array_key_exists dengan tatasusunan yang sama:

<code class="php">var_dump(array_key_exists(123, $a)); // true
var_dump(array_key_exists(456, $a)); // true
var_dump(array_key_exists(789, $a)); // false</code>

Memilih Pendekatan yang Tepat

Untuk senario di mana elemen dijamin mempunyai nilai bukan NULL, isset mungkin lebih baik kerana kecekapannya. Jika tidak, array_key_exists mungkin lebih sesuai.

Dalam contoh khusus anda, anda boleh mengubah suai kod anda seperti berikut menggunakan isset:

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

Atas ialah kandungan terperinci Konstruk PHP Mana Yang Lebih Baik untuk Mengesahkan Kewujudan Elemen Array: isset atau array_key_exists?. 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