美文网首页
PHP程序中的非空与null判断浅谈

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

作者: LeeBoot | 来源:发表于2017-10-14 15:54 被阅读0次
  • 相信大家都对下面的代码不陌生:
$user = session('USER');
if($user != ''){
  echo $user;
}

if($user['userName'] != ''){
    echo $user['userName'];
}
  • 以上就是大家一般平时对非空判断的代码

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

  • 第一:上述代码的非空判断不会识别一类数据处理中的特殊类型(其实是空的,但是会被识别为非空),如下:

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

将上述代码中的非空判断换成empty();去精确判断,避开PHP基层逻辑代码导致的无数据有对象给程序逻辑带来的问题。
  • 第二:上述代码中存在$user['userName'] != ''的非空判断,这其实也是个bug,原因如下:

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

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

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

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

相关文章

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

    相信大家都对下面的代码不陌生: 以上就是大家一般平时对非空判断的代码 那么问题来了:这种代码其实就是个bug,为什...

  • Kotlin 空安全

    可空类型与非空类型 在 Kotlin 中,类型区分引用可以为 null (可空引用),或不能为 null(非空引用...

  • python true false 值判断

    Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false

  • 1.Kotlin空安全

    1.可空类型和非空类型 在Kotlin中,类型系统通过?来判断一个引用是否可以容纳null。非空类型声明如下: 如...

  • Python 条件语句

    Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。Python 编程...

  • 数据库 | MySQL | 6. NULL值处理

    判断是否为null $ 判断是否为非null

  • StringUtils中 isNotEmpty 和isNotBl

    isNotEmpty 判断某字符串是否非空 StringUtils.isNotEmpty(null) = fals...

  • StringUtils中 isNotEmpty 和isNotBl

    isNotEmpty :判断某字符串是否非空StringUtils.isNotEmpty(null) = fals...

  • 条件语句

    1.简单if语句Python程序语言指定任何非0和非空(null)值为true,0或者null为false。Pyt...

  • Kotlin学历之空安全

    简述 在java中Null是最常见的陷阱之一,在很多时候不得不写非空判断来增加代码的安全性,随着业务的增长,非空的...

网友评论

      本文标题:PHP程序中的非空与null判断浅谈

      本文链接:https://www.haomeiwen.com/subject/rnoxuxtx.html