PHP中的'isset()'和'!empty()'有什么区别?

时间:2013-12-14 11:56:02

标签: php isset

我不明白isset()!empty()之间的区别。

因为如果设置了一个变量,它是不是与空的相同?

5 个答案:

答案 0 :(得分:44)

ISSET 检查变量是否已设置。换句话说,它检查变量是否是除NULL以外的任何值或未赋值。如果变量存在并且具有非NULL值,则ISSET返回TRUE。这意味着设置了分配了“”,“0”,“0”或“FALSE”的变量,因此TRUEISSET

EMPTY 检查变量是否为空。 Empty被解释为:“”(空字符串),0(整数),0.0(浮点)`,“0”(字符串),NULL,FALSE,array()(空数组)和“$ var;” (声明的变量,但在类中没有值。

有关详细信息,请参阅this article

答案 1 :(得分:4)

类型比较表给出了关于这些运算符的所有问题的答案

http://php.net/manual/en/types.comparisons.php

答案 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)