if语句中的boolean

时间:2010-02-07 04:14:01

标签: php

如果我只想在变量true时执行代码,我应该:

if ($option) { /* code */ }

if ($option == TRUE) { /* code */ }

第一个不是暗示像1,2,3等的值也会执行代码。

第二个是更好的选择吗?

3 个答案:

答案 0 :(得分:6)

我认为您正在寻找的是===运营商。 manual给出了各种比较运算符的正确描述。

===运算符会比较类型和值。

您可能也对PHP Caparison Tables感兴趣。他们将描述比较运算符在比较两种不同类型时的工作原理。

答案 1 :(得分:4)

这两个语句基本相同,因为正如您所指出的,PHP会将多个值评估为true

如果您希望您的比较严格匹配布尔TRUE变量,您的第二个语句应使用:

$option === TRUE

答案 2 :(得分:1)

基本上php将其转换为最简单的类型。在这种情况下,它会将整数转换为boolean,任何大于tan 0的整数都将为true,因此如果$ option有一个整数tan tan,则等于一个真的布尔值。

查看此表以更好地理解它。

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