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

查看所有标签

猜你喜欢:

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

并行计算导论

并行计算导论

Ananth Grama、George Karypis、张武、毛国勇、Anshul Gupta、Vipin Kumar、程海英 / 张武、毛国勇、程海英 / 机械工业出版社 / 2005-1-1 / 49.00元

《并行计算导论》(原书第2版)全面介绍并行计算的各个方面,包括体系结构、编程范例、算法与应用和标准等,涉及并行计算的新技术,也覆盖了较传统的算法,如排序、搜索、图和动态编程等。《并行计算导论》(原书第2版)尽可能采用与底层平台无关的体系结构并且针对抽象模型来设计处落地。书中选择MPI、POSIX线程和OpenMP作为编程模型,并在不同例子中反映了并行计算的不断变化的应用组合。一起来看看 《并行计算导论》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具