0
array_key_exists($name, $defaults)
isset($defaults[$name])
array_key_exists($name, $defaults)
isset($defaults[$name])
是的,有区别。 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。
下面是来自PHP手册的一个快速评论,讲述了两者之间的performance differences!
但他们做同样的事情: - \
罢工,我是一个白痴。
不,他们不会做同样的事情:'isset'在定义值时会返回'false',但是'null'; 'array_key_exists',另一方面,将返回'true' ;;;请参阅示例2的注释:http://php.net/array_key_exists – 2010-03-03 18:02:44