在判斷某個 PHP 數組的索引值是否存在,一般會使用 isset
和 array_key_exists
兩種方法。
isset($a['key'])array_key_exists('key', $a)
array_key_exists
確切地告訴你,數組是否存在某個鍵,而 isset
則只是返回鍵值是否為 null
的狀態。也就是說,假設給定下面的數組:
$a = array('key1' => '123', 'key2' => null);
使用這兩個方法判斷鍵值存在情況,結果如下:
isset($a['key1']); // truearray_key_exists('key1', $a); // trueisset($a['key2']); // falsearray_key_exists('key2', $a); // true
從 PHP 引擎本身來說,底層都是 C 語言的實現,array_key_exists
和 isset
應該都是很快的。如果運算次數上千次上萬次,這種情況下 isset
的性能應該更為顯著。