PHP 的 empty 和 isset 对比

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

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

导语

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

定义

先来看下两个函数的手册

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 对比》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

C语言名题精选百则技巧篇

C语言名题精选百则技巧篇

冼镜光 / 机械工业出版社 / 2005-7 / 44.00元

《C语言名题精选百则》(技巧篇)收集了100则C语言程序设计题,共分9类。第一类比较简单,主要希望读者了解到《C语言名题精选百则》(技巧篇)的题目、解法与其他书籍之间的差异;第二至六类分别是关于数字、组合数学或离散数学、查找、排序、字符串等方面的题目;第七类列出了一些不太容易归类的题目,如Buffon丢针问题、Dijkstra的三色旗问题等;第八类则收录了一些有趣的、娱乐性的题目,如魔方阵等;第九......一起来看看 《C语言名题精选百则技巧篇》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具