这两个陈述有什么区别吗?

时间:2010-03-03 17:56:36

标签: php arrays

array_key_exists($name, $defaults)

isset($defaults[$name])

2 个答案:

答案 0 :(得分:5)

是的,有区别。如果值为 null ,则isset会返回 false ,而array_key_exists则不会:

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

因此,除非您不希望数组项是否存在或 null ,否则应始终使用array_key_exists作为数组键。

答案 1 :(得分:1)

以下是PHP手册中关于两者之间performance differences的快速评论! 但他们做同样的事情: - \

罢工,我是个白痴。