当前位置: 首页 > 后端技术 > PHP

比较PHP的empty和isset

时间:2023-03-29 21:17:38 PHP

介绍这是一个常见的话题。之所以用这两个函数来做比较,是因为它们经常被用来判断一个变量是否为空,但还是有些区别的。下面我们来做个对比。定义看下两个函数的手册emptyempty—检查一个变量是否为空boolempty(mixed$var)来判断一个变量是否被认为是空的。当一个变量不存在,或者它的值等于FALSE,那么就认为它不存在。如果变量不存在,empty()不会生成警告。issetisset—检查变量是否已设置且非NULLboolisset(mixed$var,[mixed$...])检查变量是否已设置且非NULL。从手册上可以看出这两个函数的重点是empty的重点是否为空,isset的重点是set和非NULL。比较下面列出的几种可能的null值,使用两个函数判断变量是否为空,比较返回值是否符合预期(注:isset返回false等同于empty返回true)。变量值emptyisset是否相同falsebool(true)bool(true)不相同nullbool(true)bool(false)相同''bool(true)bool(true)不相同'0'bool(true)bool(true)不一样0bool(true)bool(true)不一样array()bool(true)bool(true)不一样undefinedbool(true)bool(false)结论一样可以从上表可以看出,empty认为所有的值都是空的;并且isset被假定为已设置而不是NULL,除了null和undefined。了解这两个功能的区别,在写代码的时候根据自己的需要进行选择。参考资料:空,isset。