2014-03-06 191 views
1

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

+0

是有一个很好的学习方法就是自己做。 var_dump if语句的结果。阅读php.net。 – Pakspul

+1

请将您所做的任何研究添加到问题中。 – AD7six

回答

5

随着$a = false;

if ($a) {}将返回false,而if (isset($a)) {}将返回true。

我不知道你说的if_exist。 :)

编辑:请检查@ Utkanos的答案为一个优秀和更广泛的解释。 :)

+0

和** isset()**只是检出变量为空或否,如果其为空则返回false。 – M98

+0

同样适用于值为0或空字符串:isset将为true,但如果评估为false,则为纯粹! – MBaas

5

if (isset($var))

检查一个变量已经被设置,并且它具有一个非空值。

if ($var)

假定对于具有truthy值它的变量已经被设置,并检查来代替。

PHP没有功能if_exist。也许你正在考虑array_key_exists,如果数组包含某个键,则返回true。

+2

'isset'检查变量是否已设置*且其值不为空*。 – faintsignal

+0

忘记非零部分 - 我几乎完全用它来检查是否已设置变量。编辑 - 谢谢。 – Utkanos

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

相关问题