php is_null 判断,PHP判断null,别再=了,你真控制不住
引言
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 :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
php is_null 判断,PHP判断null,别再=了,你真控制不住相关推荐
- JS 中如何判断 undefined 和 null
为什么80%的码农都做不了架构师?>>> JS 中如何判断 undefined JavaScript 中有两个特殊数据类型:undefined 和 null,下节介绍了 nul ...
- Java的if判断对象为null时,null放在比较运算符的左边还是右边较好?
如java中:if(name == null)和if(null == name)有什么讲究吗? 答:在java里面,它们是一样的.但是通常写为null == name.这其实是在C语言里面引申出来的. ...
- 在JS中如何判断undefined和null
不当用法 有时为了判断某个值有效,JS新手会写这种臃肿代码: if (data != null && typeof(data) != undefined && data ...
- Js如何判断undefined和null
判断是否为undefined var example = undefined; if (typeof(example) == "undefined") {console.log(& ...
- jq判断html为空,jquery如何判断是否为null?
在我们使用jQuery的做表单验证的时候,有事常常使用到一下的判断,例如是否为null.undefine.NaN.下面本篇文章就简单的总结一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有 ...
- mysql 判断等于空字符串,MySql判断是否为null或空字符串
MySql判断是否为null或空字符串 判断方法: if ISNULL(aBegBalRule) || LENGTH(trim(aBegBalRule))<1 THEN ELSE END IF ...
- 逻辑判断-if语句/文件目录属性判断/case判断
逻辑判断IF -gt :大于 -lt :小于 -eq :等于 -ne :不等于 -ge :大于或等于 -le :小于或等于 格式1: if 条件 :then 语句: fi a=5 if [ $a -g ...
- 空指针:从 0 到 NULL,再到 nullptr
nullptr 空指针:从 0 到 NULL,再到 nullptr NULL 是一个宏定义: #undef NULL #if defined(__cplusplus) #define NULL 0 # ...
- python中1 is True 的结果为False,is判断与==判断的区别
python中1 is True 的结果为False,而1 == True的结果为True. python中True的数值就是1,那为什么1 is True 的结果为False呢? 因为is判断和== ...
最新文章
- java三个取最大值、菜单新增修改、猜数字大小
- EMNLP 2020 | RecAdam: 在更少的遗忘下精调预训练语言模型
- BigGAN、BiGAN、BigBiGAN简单介绍
- ES3~ES7的数组方法
- day26 SQL注入神器—— Sqlmap
- 2022凉茶市场份额
- H106OJ | 第二次练习(查找)
- 在openEuler 21.9安装自带的容器软件Docker、podman、skopeo
- mac中没有my.cnf文件 mysql
- 使用UltraISO(软碟通)制作U盘启动盘完整教程
- 1Mbps带宽到底能够达到什么效果,看看下面的介绍就懂了。
- MySQL多实例(一台服务器搭建多个数据库)
- 个人单干也能实现年入百万(玩转私域流量)
- 2022年钒电池行业研究报告
- 强迫症的 Mac 设置指南
- 记一次笔记本SSD系统迁移
- vue开发android tv,vue-tv-focusable中文文档
- CBTC系统标准: 1474.3---系统设计和功能分配需求
- uniGui删除服务器文件,彻底取消unigui /server页面
- 【JY】混凝土分析工具箱:CDP模型插件与滞回曲线数据
热门文章
- 第十五届智能车竞赛技术报告-成电金秋-AI电磁
- 第十五届全国大学生智能汽车竞赛 信标组亮灯顺序和次数
- 自己动手修改龙邱信标灯固件FM频率
- 500线电机光电码盘
- 300*4=1200
- MySQL查询本年的数据的sql语句
- c# mysql fill_C#里sqlDataAdapter.fill(DataSet,String)的用法
- 七猫php面试,七猫面试 - osc_2frv0wjp的个人空间 - OSCHINA - 中文开源技术交流社区...
- pythonturtle画房子_用python的turtle模块实现给女票画个小心心
- php中控制面板折叠,微信小程序折叠面板的实现方法示例