PHP 的 empty 和 isset 对比
导语
老生常谈的话题,之所以用这两个函数做对比,是因为常用来判断变量是否为空,但是它们有些不同,下面进行下对比。
定义
先来看下两个函数的手册
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 对比相关推荐
- php empty ,is_null ,isSet 对比
转载于:https://www.cnblogs.com/smallmuda/archive/2011/06/07/2074390.html
- php empty()和isset()的区别
在使用 php 编写页面程序时,我经常使用变量处理函数判断 php 页面尾部参数的某个变量值是否为空,开始的时候我习惯了使用 empty() 函数,却发现了一些问题,因此改用 isset() 函数,问 ...
- php is_null、empty、isset的区别
isset 判断变量是否已存在 empty 判断变量是否为空或为0 is_null 判断变量是否为NULL 变量 empty is_null isset $a="" true fa ...
- php中的empty和isset
empty()和isset()是一个语法结构,不是一个函数.他们只能判断变量,不能判断一个直接的字面值(比如1,0,2),一个函数的返回值,一个表达式的返回值. 转载于:https://blog.51 ...
- PHP is_null,empty以及isset,unset的区别
1.empty 判斷一個變量是否為"空". null.false.00.0.'0′.』.為以上值的變量在檢測時都將返回true. 2.isset 判斷一個變量是否已經設置. 0.0 ...
- php中empty(), is_null(), isset()函数区别
empty(), is_null(), isset()真值表(区别) 我们先来看看这3个函数的功能描述 www.111cn.net isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返 ...
- PHP中empty,is_null,isset中的异同和功能
empty -- 检查一个变量是否为空 bool empty ( mixed var ) 如果 var 是非空或非零的值,则 empty() 返回 FALSE .换句话说,"" . ...
- php中is null,php中empty(), is_null(), isset()函数区别
empty(), is_null(), isset()真值表(区别) 我们先来看看这3个函数的功能描述 www.111cn.net isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返 ...
- PHP自学---empty()和isset()的使用
empty和isset都可以用来判断变量是否存在,empty是判定是否为空,isset判定是否被定义. 有些需要注意的地方如下: 例1: $str=' ';//赋值为空格符 var_dump( emp ...
最新文章
- 三、python中最基础的文件处理汇总
- 在Mac上控制Alt Delete-如何在Macbook上打开任务管理器
- RxJava Timer:代替handler
- linux嵌套字幕工具,Linux(NAS通用)下自动匹配射手字幕脚本
- 在C语言中以编程的方式获取函数名
- boost::intrusive::set用法的测试程序
- 四川大学计算机科学与技术专业分数线,2015年四川大学计算机科学与技术硕士考研复试分数线是290分...
- 【C++grammar】继承与构造test1代码附录
- 面试官问:HTTP 的负载均衡你了解么?你不是说了你们用的Nginx么?说一下把。...
- applicationcontext添加配置_让小白也能懂的Bean配置方法
- 信贷ABS资产静态池与动态池里的数据分析内容都有啥
- PHP童鞋改JAVA代码怎么处理
- php session失效
- Eclipse 下载源码插件
- 黑马Java学科资料
- 去除UC浏览器强制嵌入的垃圾广告代码
- TCL/Tk基础学习(二)
- vue-recaptcha 谷歌机器人验证
- bzoj-1565 植物大战僵尸
- find命令 tpye选项