我不明白isset()
和!empty()
之间的区别。
因为如果设置了一个变量,它是不是与空的相同?
答案 0 :(得分:44)
ISSET 检查变量是否已设置。换句话说,它检查变量是否是除NULL以外的任何值或未赋值。如果变量存在并且具有非NULL值,则ISSET
返回TRUE
。这意味着设置了分配了“”,“0”,“0”或“FALSE”的变量,因此TRUE
为ISSET
。
EMPTY 检查变量是否为空。 Empty被解释为:“”(空字符串),0(整数),0.0(浮点)`,“0”(字符串),NULL,FALSE,array()(空数组)和“$ var;” (声明的变量,但在类中没有值。
有关详细信息,请参阅this article
答案 1 :(得分:4)
类型比较表给出了关于这些运算符的所有问题的答案
答案 2 :(得分:0)
isset
- 确定变量是否已设置且不为NULL。
!empty
- 确定变量是否为空。
答案 3 :(得分:0)
如果未设置变量或者为null,则Isset返回false,如果已设置变量且不为null,则返回true。
!empty如果已设置变量且不为空,则返回true。空字符串,空数组,“0”,0和false被定义为空。
答案 4 :(得分:0)
还有一句话。 empty()
检查变量是否也存在。即如果我们对未声明的变量执行empty()
,我们就不会收到错误,empty()
会返回' true'。因此,如果接下来我们需要检查变量是否为空,我们可以避免isset()
。
所以
isset($var) && !empty($var)
将等于
!empty($var)