IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    PHP - Isset 与 Empty 的区别

    forecho (caizhenghai@gmail.com)发表于 2014-09-05 21:18:20
    love 0

    当一个变量没有声明的时候,第一个 if 会报错

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    if ($a) {
       echo $a.'1'.PHP_EOL;
    }
    if (!empty($a)) {
       echo $a.'2'.PHP_EOL;
    }
    if (isset($a)) {
       echo $a.'3'.PHP_EOL;
    }
    

    当一个变量声明了,并且值为空的时候,isset 会通过,此处输出结果是 a3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    $a='';
    if ($a) {
       echo $a.'1'.PHP_EOL;
    }
    if (!empty($a)) {
       echo $a.'2'.PHP_EOL;
    }
    if (isset($a)) {
       echo $a.'3'.PHP_EOL;
    }
    

    当一个变量声明了,并且有值的时候,三个都会通过,此处输出结果是 a1 a2 a3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    $a='a';
    if ($a) {
       echo $a.'1'.PHP_EOL;
    }
    if (!empty($a)) {
       echo $a.'2'.PHP_EOL;
    }
    if (isset($a)) {
       echo $a.'3'.PHP_EOL;
    }
    

    总结:

    1. 结论就是从数据库查询出结果的时候,如果要做判断就直接做判断或者用 empty 去做判断,如果用 isset 去做判断就毫无意义。
    2. empty 可以判断变量是否存在并且值是否为空,所以尽量用 empty 做判断。
    3. isset 只能判断变量是否声明。


沪ICP备19023445号-2号
友情链接