php中if(isset($a))
和if($a)
或if_exist($a)
和if($a)
之间有什么区别?
答案 0 :(得分:5)
if (isset($var))
检查是否已设置变量并且它具有非空值。
if ($var)
假设已设置变量并检查它是否具有真值。
PHP没有函数if_exist
。也许您正在考虑array_key_exists
,如果数组包含某个键,则返回true。
答案 1 :(得分:5)
使用$a = false;
:
if ($a) {}
将返回false,而if (isset($a)) {}
将返回true。
我不知道if_exist你说的。 :)
编辑:请检查@ Utkanos的答案,以获得优秀且更广泛的解释。 :)
答案 2 :(得分:1)
isset($var)
检查变量$var
是否不是null
类型,并返回布尔值true
或false
。
如果出现以下情况,则认为变量为空
if($var)
执行隐式类型转换,将$var
从其原始类型转换为布尔值,这意味着它会检查truthy
或falsy
值。
要检查变量是否为truthy
,您可以将其显式转换为布尔值:
$var = "foo";
var_dump((bool)$var); // outputs 'bool(true)'
$var = "0";
var_dump((bool)$var); // outputs 'bool(false)'
有关PHP如何处理不同变量类型的完整列表,请参阅: