导语

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

定义

先来看下两个函数的手册

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。

PHP 的 empty 和 isset 对比相关推荐

  1. php empty ,is_null ,isSet 对比

    转载于:https://www.cnblogs.com/smallmuda/archive/2011/06/07/2074390.html

  2. php empty()和isset()的区别

    在使用 php 编写页面程序时,我经常使用变量处理函数判断 php 页面尾部参数的某个变量值是否为空,开始的时候我习惯了使用 empty() 函数,却发现了一些问题,因此改用 isset() 函数,问 ...

  3. php is_null、empty、isset的区别

    isset 判断变量是否已存在 empty 判断变量是否为空或为0 is_null 判断变量是否为NULL 变量 empty is_null isset $a="" true fa ...

  4. php中的empty和isset

    empty()和isset()是一个语法结构,不是一个函数.他们只能判断变量,不能判断一个直接的字面值(比如1,0,2),一个函数的返回值,一个表达式的返回值. 转载于:https://blog.51 ...

  5. PHP is_null,empty以及isset,unset的区别

    1.empty 判斷一個變量是否為"空". null.false.00.0.'0′.』.為以上值的變量在檢測時都將返回true. 2.isset 判斷一個變量是否已經設置. 0.0 ...

  6. php中empty(), is_null(), isset()函数区别

    empty(), is_null(), isset()真值表(区别) 我们先来看看这3个函数的功能描述 www.111cn.net isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返 ...

  7. PHP中empty,is_null,isset中的异同和功能

    empty -- 检查一个变量是否为空 bool empty ( mixed var ) 如果 var 是非空或非零的值,则 empty() 返回 FALSE .换句话说,"" . ...

  8. php中is null,php中empty(), is_null(), isset()函数区别

    empty(), is_null(), isset()真值表(区别) 我们先来看看这3个函数的功能描述 www.111cn.net isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返 ...

  9. PHP自学---empty()和isset()的使用

    empty和isset都可以用来判断变量是否存在,empty是判定是否为空,isset判定是否被定义. 有些需要注意的地方如下: 例1: $str=' ';//赋值为空格符 var_dump( emp ...

最新文章

  1. 三、python中最基础的文件处理汇总
  2. 在Mac上控制Alt Delete-如何在Macbook上打开任务管理器
  3. RxJava Timer:代替handler
  4. linux嵌套字幕工具,Linux(NAS通用)下自动匹配射手字幕脚本
  5. 在C语言中以编程的方式获取函数名
  6. boost::intrusive::set用法的测试程序
  7. 四川大学计算机科学与技术专业分数线,2015年四川大学计算机科学与技术硕士考研复试分数线是290分...
  8. 【C++grammar】继承与构造test1代码附录
  9. 面试官问:HTTP 的负载均衡你了解么?你不是说了你们用的Nginx么?说一下把。...
  10. applicationcontext添加配置_让小白也能懂的Bean配置方法
  11. 信贷ABS资产静态池与动态池里的数据分析内容都有啥
  12. PHP童鞋改JAVA代码怎么处理
  13. php session失效
  14. Eclipse 下载源码插件
  15. 黑马Java学科资料
  16. 去除UC浏览器强制嵌入的垃圾广告代码
  17. TCL/Tk基础学习(二)
  18. vue-recaptcha 谷歌机器人验证
  19. bzoj-1565 植物大战僵尸
  20. find命令 tpye选项

热门文章

  1. 进程间通信程序设计1
  2. 从petshop中一实例谈using 的三种用法
  3. 一个简单的GridView分页通用程序
  4. python监控机器(第1版)
  5. 使用Android DataBinding BindingAdapter和Dagger 2
  6. Tensorflow初入门
  7. scala (2) while 和变量
  8. WebApi实现验证授权Token,WebApi生成文档等
  9. SSIS 连接ORACLE 无法从 SQL 命令中提取参数的解决方案
  10. Linux 远程和本地的一些解决方案