在PHP中'isset()'和'!empty()'有什么区别?
我不明白isset()
和!empty()
之间的区别。
因为如果一个variables已经设置,是不是不是空的一样?
ISSET检查variables是否已被设置。 换句话说,它检查variables是否是除NULL之外的任何值或者没有赋值。 如果variables存在并且具有非NULL值,则ISSET
返回TRUE
。 这意味着分配了“”,0,“0”或FALSE的variables被设置,因此ISSET
为TRUE
。
EMPTY检查variables是否为空。 Empty被解释为:“”(一个空string),0(整数),0.0(浮点),“0”(string),NULL,FALSE,array()(一个空数组)和“$ var;” (一个声明的variables,但在一个类中没有值。
有关更多信息,请参阅此文章
来源:http://php.net/manual/en/types.comparisons.php这个页面显示了empty()
, is_null()
, isset()
。
types比较表给出了关于这些操作符的所有问题的答案
isset
– 确定是否设置了一个variables,而不是NULL。
!empty
– 确定variables是否为空。
如果variables尚未设置,Isset返回false;如果variables已设置,则返回true;如果variables未设置,则返回true。
!empty如果variables已经设置而不是空的,则返回true。 空string,空数组,“0”,0和false被定义为空。
还有一点意见。 empty()
检查variables是否也存在。 也就是说,如果我们对未声明的variables执行empty()
,我们不会收到错误, empty()
返回“true”。 所以我们可以避免isset()
如果接下来我们需要检查variables是否为空。
所以
isset($var) && !empty($var)
将等于
!empty($var)