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

use*_*729 0 php arrays

array_key_exists($name, $defaults)

isset($defaults[$name])
Run Code Online (Sandbox Code Playgroud)

Gum*_*mbo 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)
Run Code Online (Sandbox Code Playgroud)

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