本日我们说一下判断 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 :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。