2010-03-03 101 views
0
array_key_exists($name, $defaults) 

isset($defaults[$name]) 

回答

5

是的,有區別。 isset回報如果值爲array_key_exists並不:

$defaults = array('foobar' => null); 
var_dump(array_key_exists('foobar', $defaults)); // bool(true) 
var_dump(isset($defaults['foobar']));    // bool(false) 

所以,你應該始終使用array_key_exists數組鍵,除非你不想有所作爲的數組項是否存在是null

1

下面是來自PHP手冊的一個快速評論,講述了兩者之間的performance differences 但他們做同樣的事情: - \

罷工,我是一個白癡。

+1

不,他們不會做同樣的事情:'isset'在定義值時會返回'false',但是'null'; 'array_key_exists',另一方面,將返回'true' ;;;請參閱示例2的註釋:http://php.net/array_key_exists – 2010-03-03 18:02:44