我有一个问题:$value !=''
和!isset($value)
之间有什么区别?
答案 0 :(得分:3)
$value != ''
和!isset($value)
之间实际使用的主要区别在于您可以像这样使用isset()
:
if(!isset($value)){
echo '$value is not declared or is equal to null';
}
如果$value
未实际设置,则您不会收到isset()
的通知。如果你做了这样的事情:
if($value != ''){
echo $value." is not equal to nothing";
}
如果未设置$value
,则会在PHP中发出通知,说明尚未声明$value
。
需要注意的是isset()
将检查变量是否已声明,但不会检查它是否等于''
。
但是empty()
呢?
这里的难题的另一部分是empty()
,它将检查变量是否被声明并且不等于''
。你可以这样做:
if(!empty($value)){
echo 'We know that $value is declared and not equal to nothing.';
}
这与执行此操作相同:
if(isset($value) && $value != ''){
echo 'We know that $value is declared and not equal to nothing.';
}
进一步阅读:
isset()
- PHP docs
empty()
- PHP docs
isset,空检查 - similar question
Why check both isset and empty?
所有这些示例都适用于PHP 5.3 +
答案 1 :(得分:0)
isset()会告诉您变量的存在,而不是
NULL
。empty()可以告诉你两者,变量&的存在变量的值。
实施例。
$var1 = "";
echo isset($var1);
输出: - true
因此要检查变量是否已设置,然后使用isset()
,如果要检查变量的值是否为空/空,请使用empty()
。
$value != ''
表示您正在检查$value
是否不是空字符串。
!isset($value)
确定变量$value
是否未设置且NULL
阅读这些链接,了解有关isset
&的更多信息。 empty
What's the difference between 'isset()' and '!empty()' in PHP?
答案 2 :(得分:0)
$variable != ''
只是根据空字符串值检查变量(或因为'' == null
而为null),如果未定义变量,则会显示通知。
!isset($variable)
检查变量是否已定义,如果未返回true,则不会显示错误/通知。
但请注意,即使定义了变量,isset
也可能返回false
$variable = null;
var_dump(isset($variable)); // prints false
当前范围内的To check if variable is truly defined,将'array_key_exists'与'get_defined_vars'一起使用
$variable = null;
var_dump(array_key_exists('value', get_defined_vars())); // prints true