3 回答
TA贡献1865条经验 获得超7个赞
array_key_exists肯定会告诉您,数组中是否存在密钥,而isset只会回来true如果存在密钥/变量而不是null.
$a = array('key1' => 'フーバー', 'key2' => null);
isset($a['key1']); // true
array_key_exists('key1', $a); // true
isset($a['key2']); // false
array_key_exists('key2', $a); // true
还有一个重要的区别。isset不会抱怨$a不存在,而array_key_exists的确如此。
TA贡献1895条经验 获得超7个赞
array_key_exists
isset
[O(1)]
, isset
isset
.
null
, isset
false
array_key_exists
true
null
array_key_exists
.
TA贡献1772条经验 获得超5个赞
isset
告诉是否定义了表达式(数组),是否设置了键。 如果没有定义var,则没有警告或错误,也没有数组. 但
回报 假的
如果该键的值为 零
array_key_exists
告诉数组中是否存在如名称所暗示的键。 但
如果数组参数不是 列阵
它可能是一个数组,也可能不是一个数组。 (或者类似地是多维数组,其中键检查发生在DIM 2,dIM 1值可能不是1的数组)。 圣
DIM(等.)
@
isset($var[$key]); // silent but misses null valuesarray_key_exists($key, $var); // works but warning if $var not defined/array
is_array
$var
if (isset($var[$key]) || isset($var) && is_array($var) && array_key_exists($key, $var)) ...
if (isset($var) && is_array($var) && array_key_exists($key, $var)) ...
- 3 回答
- 0 关注
- 372 浏览
添加回答
举报