php中的isset函数,php中isset()、isnull()和empty()三个函数的区别

php中的isset函数,php中isset()、isnull()和empty()三个函数的区别摘要 在 php 中经常会用 isset isnull 和 empty 三个函数来做 if 判断 那这三个函数到底有什么不同呢 在 php 中经常会用 isset is null 和 empty 三个函数来做 if 判断 那这三个函数到底有什么不同呢

大家好,我是讯享网,很高兴认识大家。

favicon.ico
讯享网摘要:在php中经常会用isset()、isnull()和empty()三个函数来做if判断,那这三个函数到底有什么不同呢?

在php中经常会用isset()、is_null()和empty()三个函数来做if判断,那这三个函数到底有什么不同呢?

下面通过官方文档对这三个函数的解释来说说他们的区别(PHP版本:7.3.4nts)

一、isset()函数

函数形式:isset ( mixed $var [, mixed $... ] ) : bool

函数说明:

检测变量是否设置,并且不是 NULL。

如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。

如果一次传入多个参数,那么 isset() 只有在全部参数都以被设置时返回 TRUE 计算过程从左至右,中途遇到没有设置的变量时就会立即停止。

返回值:

如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。

从它的函数使用形式来看,它可以同时对多个变量进行检查,至于结果,请看案例:

20200107_1578389494622241.jpg

在正常情况下,使用未定义的变量是会报错的,但这里并没有报错。

单个变量检查应该没什么疑问,但是同时检测多个变量时,从案例可以发现,只有当检测的所有变量都存在且不为NULL时才会返回TRUE,否则返回FALSE。

二、is_null() 函数

函数形式:is_null ( mixed $var ) : bool

函数说明:

is_null — 检测变量是否为 NULL。

如果 var 是 null 则返回 TRUE,否则返回 FALSE。

查看 NULL 类型获知变量什么时候被认为是 NULL,而什么时候不是。

从函数使用形式上来看,is_null() 一次只能检测一个变量,请看示例截图:

20200107_1578390078393111.jpg

从示例结果来看,is_null() 检测未定义的变量也不报错,并且返回TRUE,当变量已定义并且值不为空时,返回 false,与isset() 正好相反。

当变量定义了,但没有明确指定变量的值为NULL时,此时即便变量没有值,但任然返回了false

三、empty() 函数

函数形式:empty ( mixed $var ) : bool

函数说明:

判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。这意味着 empty() 本质上与 !isset($var) || $var == false 等价。

返回值:

当var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE.

以下的东西被认为是空的:"" (空字符串)

0 (作为整数的0)

0.0 (作为浮点数的0)

"0" (作为字符串的0)

NULL

FALSE

array() (一个空数组)

$var; (一个声明了,但是没有值的变量)

empty()函数检测的同样是一个变量,使用示例:

20200107_1578390775813957.jpg

从截图中可以发现,当变量为空字符串时,is_null 返回的是 false,empty() 返回的是 true。

20200107_1578390919921845.jpg

【对比总结】

①对于检测不存在的变量,三个函数都不会产生警告和其他错误。

②isset()可以同时检测多个变量,检测的变量之间为‘并’关系:只有所有变量都存在且值不为 NULL,返回值才会TRUE。

③is_null(),检测空字符串时返回TRUE。

④empty() 当被判断变量存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE。

⑤isset()检测单个变量,只在变量未被定义或者指定变量的值为NULL两种情况下返回FALSE。

20200107_1578391670712964.jpg

小讯
上一篇 2025-01-09 15:29
下一篇 2025-04-02 21:25

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/65141.html