如果我只想在变量true
时执行代码,我应该:
if ($option) { /* code */ }
或
if ($option == TRUE) { /* code */ }
第一个不是暗示像1,2,3等的值也会执行代码。
第二个是更好的选择吗?
答案 0 :(得分:6)
我认为您正在寻找的是===
运营商。 manual给出了各种比较运算符的正确描述。
===
运算符会比较类型和值。
您可能也对PHP Caparison Tables感兴趣。他们将描述比较运算符在比较两种不同类型时的工作原理。
答案 1 :(得分:4)
这两个语句基本相同,因为正如您所指出的,PHP会将多个值评估为true
。
如果您希望您的比较严格匹配布尔TRUE变量,您的第二个语句应使用:
$option === TRUE
答案 2 :(得分:1)
基本上php将其转换为最简单的类型。在这种情况下,它会将整数转换为boolean,任何大于tan 0的整数都将为true,因此如果$ option有一个整数tan tan,则等于一个真的布尔值。
查看此表以更好地理解它。