资讯专栏INFORMATION COLUMN

PHP 的 empty 和 isset 对比

Mr_zhang / 611人阅读

摘要:定义先来看下两个函数的手册检查一个变量是否为空判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于,那么它会被认为不存在。如果变量不存在的话,并不会产生警告。检测变量是否已设置并且非检测变量是否设置,并且不是。

导语

老生常谈的话题,之所以用这两个函数做对比,是因为常用来判断变量是否为空,但是它们有些不同,下面进行下对比。

定义

先来看下两个函数的手册

empty
empty — 检查一个变量是否为空

bool empty ( mixed $var )

判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。

isset
isset — 检测变量是否已设置并且非 NULL

bool isset ( mixed $var , [mixed $... ] )

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

从手册中可以看出两个函数的重点,empty 的重点是否为空isset 的重点是否已设置并且非 NULL

对比

以下罗列几种可能出现的空值,使用两个函数判断变量是否为空,对比一下返回值是否符合期待(注:isset 返回 false 等同于 empty 返回 true)。

变量值 empty isset 是否相同
false bool(true) bool(true) 不相同
null bool(true) bool(false) 相同
"" bool(true) bool(true) 不相同
"0" bool(true) bool(true) 不相同
0 bool(true) bool(true) 不相同
array() bool(true) bool(true) 不相同
未定义 bool(true) bool(false) 相同
结论

由上表可以看出,empty 认为所有值都是;而 isset 除了 null 和未定义,都认为已设置并且非 NULL。了解了两个函数的不同点,在写代码的时候根据需求进行选择。


参考资料:empty、isset。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30064.html

相关文章

  • [PHP]一张图片彻底弄清isset empty函数区别!!!

    摘要:如果还有人问你两者区别,马上甩出这种图有兴趣可以往下阅读,官方手册给出的例子手册这是一张将区别的表格,从表格中我们可以发现返回值等同返回值等同。 简单谈一下isset和empty的区别? 如果你是在面试,碰巧面试官提了这个问题。你可以这样回答: 如果变量值为0、空字符串、空数组等等,empty认为它是空的,而isset认为它不是空的。 如果变量不存在,isset和empty都认为它是...

    venmos 评论0 收藏0
  • 深入理解PHPissetarray_key_exists对比

    摘要:从这个函数最后一行可以看出,最终执行的还是根据不同的用法会使用不同的处理此处以为例。如下总结效率高于之后有左右的提升有将近的提升。 1、概述 经常使用isset判断变量或数组中的键是否存在, 但是数组中可以使用array_key_exists这个函数, 那么这两个谁最优呢? 官方文档对两者的定义 - 分类 描述 文档 isset 语言构造器 检测变量是否已设置并且非 NULL...

    Jenny_Tong 评论0 收藏0
  • [PHP源码阅读]emptyisset函数

    摘要:函数使用格式判断变量是否为空。对于,如果变量被如的函数设为,则函数会返回。,到分支,,返回数组元素的数量,为空,因此为,,,因此返回。 近日被问到PHP中empty和isset函数时怎么判断变量的,刚开始我是一脸懵逼的,因为我自己也只是一知半解,为了弄懂其真正的原理,赶紧翻开源码研究研究。经过分析可发现两个函数调用的都是同一个函数,因此本文将对两个函数一起分析。 我在github有对P...

    Pink 评论0 收藏0
  • PHPisset,empty,is_null用法区别

    摘要:用法如果是非空或非零的值,则返回。如果已经使用释放了一个变量之后,它将不再是。若使用测试一个被设置成的变量,将返回。同时要注意的是一个字节并不等同于的常数。 1.empty用法bool empty ( mixed var)如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,、0、0、NULL、FALSE、array()、var $var; 以及没有任何属性的...

    fou7 评论0 收藏0
  • PHP技能评测(一)

    摘要:的函数判断值为否为空格式功能检查一个变量是否为空返回值若变量不存在则返回若变量存在且其值为以及没有任何属性的对象,则返回若变量存在且值不为以及没有任何属性的对象,则返回版本更多说明的返回值,但不会因为变量未定义而产生警告信息。 作者:PHP学习网 出处:https://www.viphper.com/?p=1236 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面...

    用户84 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<