php中的if(isset($ a))和if($ a)有什么区别?

时间:2014-03-06 11:12:20

标签: php

php中if(isset($a))if($a)if_exist($a)if($a)之间有什么区别?

3 个答案:

答案 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类型,并返回布尔值truefalse

如果出现以下情况,则认为变量为空

  • 已为其分配常量NULL。
  • 尚未设置为任何值。
  • 它已被取消()。

if($var)执行隐式类型转换,将$var从其原始类型转换为布尔值,这意味着它会检查truthyfalsy值。

要检查变量是否为truthy,您可以将其显式转换为布尔值:

$var = "foo";
var_dump((bool)$var); // outputs 'bool(true)'

$var = "0";
var_dump((bool)$var); // outputs 'bool(false)'

有关PHP如何处理不同变量类型的完整列表,请参阅:

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