PHP程序中的非空与null判断浅谈

2017-10-14  本文已影响0人  LeeBoot
$user = session('USER');
if($user != ''){
  echo $user;
}

if($user['userName'] != ''){
    echo $user['userName'];
}

那么问题来了:这种代码其实就是个bug,为什么这么说呢?

array(
empty(灰色)
)这个数组是没有值的,但是这个数组是存在的,那么你的上述代码就是个bug了,而且会让你很难找到这处bug,会让你很头疼;怎么解决,如下:

将上述代码中的非空判断换成empty();去精确判断,避开PHP基层逻辑代码导致的无数据有对象给程序逻辑带来的问题。

在数组中,会存在一种情况:叫做键值不存在,导致的数组越界(数组越界状况种类,请查找我的历史文章)。
那么当符合这个情景的时候,你的代码就是会报数组越界错误了,怎么解决,如下:

将上述代码中的非空判断改为isset();去处理判断,可以预防不存在的数组键和值用作条件判断时导致的程序错误。

注:empty只能用于判断变量,不能用于判断方法的返回值.

本文为作者原创文章,转载请注明出处leeboot浅谈程序中的非空与null判断

上一篇 下一篇

猜你喜欢

热点阅读