网站首页 > 教程文章 正文
引言
PHP 程序中很多地方会用到判断是否为空,比如字符串为空,数组为空,对象为空,或者其他数据类型为默认空值。
今天我们说一下判断 null 的两种方法的区别。一般可以使用 is_null 函数,判断变量是否是 null,还可以使用 === null 判断是否与 null 值绝对相等。
这两者有什么区别呢?
学习时间
比如有一个 if 语句要判断某个变量是否为 null,有下面两种写法:
if (is_null($var)) do_something();
if ($var === null) do_something();
到底哪种方式更优,效率更高?
这里有个前提,只要是变量经过初始化,两种方式相同。只不过,is_null 还要加上函数调用的开销,而 === 则直接执行条件判断操作,效率更高。
===用于严格的数据比较。NULL只有一个“值”,因此可以与NULL(这是null“值”的PHP常量)进行比较。
is_null 正在检查变量是否为NULL数据类型。
因为PHP是脚本语言,其数据类型动态指定,那么有必要梳理一下各种空值在做运算时候的返回值了:
特别需要指出的是,empty 函数相当于 == null,而 is_null 相当于 === null,后者比较更为严格。
而 isset 函数是 is_null / === null 的反向操作。
深入学习
实际编程中我们倾向于使用 is_null 函数,因为这样写程序更容易读。比如在较为流行的 Laravel 框架内,就是用了大量的 is_null 函数。比如用户对象判断为null。
if (! is_null($this->user)) {
return $this->user;
}
比如对模型判断为空,则创建新的对象:
protected function newModelQuery($model = null)
{
return is_null($model)
? $this->createModel()->newQuery()
: $model->newQuery();
}
还有一个原因是,is_null 作为函数,可以方便地作为回调函数引用。比如对数组内所有元素做非 null 过滤。
$arrayOfNullValues = array_filter($myArray, 'is_null');
写在最后
本文介绍了PHP判断是否为 null 的两种方式,希望大家能够熟练使用,写出更优雅健壮的代码。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
猜你喜欢
- 2025-06-12 二十、Java数组(java实现数组)
- 2025-06-12 十大经典排序算法-堆排序,计数排序,桶排序,基数排序
- 2025-06-12 3分钟短文 | PHP 根据值移除数组元素,哪个方法最简单?
- 2025-06-12 JAVA程序员常用的几个工具类(java程序员主要工作内容)
- 2025-06-12 C# 基础知识系列- 3 集合数组(c#集合排序)
- 2025-06-12 JUnit5学习之三:Assertions类(junit5 assert)
- 2025-06-12 打工人私藏的4个Excel函数秘籍,效率提升3.7%
- 2025-06-12 稀疏数组——前端电子表格中的应用实战
- 2025-06-12 最快清除数组空值?分享 1 段优质 JS 代码片段!
- 2025-06-12 excel这个复杂数组公式怎么读?(excel数组公式怎么复制)
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)