2010-03-03 84 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