PHP 的 empty 和 isset 对比

栏目: PHP · 发布时间: 6年前

内容简介:老生常谈的话题,之所以用这两个函数做对比,是因为常用来判断变量是否为空,但是它们有些不同,下面进行下对比。先来看下两个函数的手册从手册中可以看出两个函数的重点,

导语

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

定义

先来看下两个函数的手册

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 。了解了两个函数的不同点,在写代码的时候根据需求进行选择。

参考资料: emptyisset


以上所述就是小编给大家介绍的《PHP 的 empty 和 isset 对比》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数学建模(原书第5版)

数学建模(原书第5版)

[美] Frank R. Giordano、[美] William P.Fox、[美] Steven B.Horton / 叶其孝、姜启源 / 机械工业出版社 / 2014-10-1 / 99.00元

《华章数学译丛:数学建模(原书第5版)》旨在指导学生初步掌握数学建模的思想和方法,共分两大部分:离散建模和连续建模,通过本书的学习,学生将有机会在创造性模型和经验模型的构建、模型分析以及模型研究方面进行实践,增强解决问题的能力。 《华章数学译丛:数学建模(原书第5版)》对于用到的数学知识力求深入浅出,涉及的应用领域相当广泛,适合作为高等院校相关专业的数学建模教材和参考书,也可作为参加国内外数......一起来看看 《数学建模(原书第5版)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试