现在的位置: 首页 > 综合 > 正文

PHP检查键值是否存在

2012年11月29日 ⁄ 综合 ⁄ 共 608字 ⁄ 字号 评论关闭

今天使用isset()函数检查一个数组中某个键值是否存在,发现一个问题。

$info['page'] = null;

if (isset($info['page'])) {
    // 存在
} else {
    // 不存在
}

代码执行的结果居然是不存在。后来换成array_key_exists()就可以了。

 

因而,对PHP的isset()使用方法有了一些怀疑,下面是一段测试代码:

$info['page'] = null; c('null');
$info['page'] = 0; c('zero');
$info['page'] = false; c('false');

function c($value)
{
    global $info;
    $key = 'page';

    $result = $value . ':';
    $result .= (true === isset($info[$key]) ? '1' : '0');
    $result .= (true === array_key_exists($key, $info) ? '1' : '0');
    $result .= (true === empty($info[$key]) ? '1' : '0');

    echo $result . "\n";
}

exit;

执行结果:

null:011
zero:111
false:111

 

总结:检查数组是否存在某个$key,使用array_key_exists($key, $array);检查对象是否存在某个$key,使用isset($object->$key)。

抱歉!评论已关闭.