如果我想執行的代碼只有一個變量是true
,我應該有:布爾在if語句
if ($option) { /* code */ }
或
if ($option == TRUE) { /* code */ }
不第一個暗示,也十分重視像1,2,3等將執行該代碼。
第二個是更好的選擇嗎?
如果我想執行的代碼只有一個變量是true
,我應該有:布爾在if語句
if ($option) { /* code */ }
或
if ($option == TRUE) { /* code */ }
不第一個暗示,也十分重視像1,2,3等將執行該代碼。
第二個是更好的選擇嗎?
我想你在找什麼是===
操作。 manual給出了各種比較運算符的體面描述。
===
運算符比較類型和值。您可能也有興趣PHP Caparison Tables。他們將描述比較運算符在比較兩種不同類型時的工作方式。
這兩個語句基本上是一樣的,因爲正如您所指出的那樣,PHP會將多個值計算爲true
。
如果你想你的比較匹配嚴格布爾TRUE變量,你的第二個語句應該使用:
$option === TRUE
基本上什麼PHP做它的轉變爲最簡單的類型。在這種情況下,它會將整數轉換爲布爾值,任何大於tan 0的整數都將爲true,因此如果$ option具有大於零的整數,則它相當於一個真正的布爾值。
查看此表以更好地理解它。
旁註:你能想到的''===作爲排序的類似於做'is_bool($選項)&& $ option'。 – Dolph 2010-02-07 04:20:32
@Dolph Mathews:除非比較布爾值以外的東西。 – MitMaro 2010-02-07 04:22:00
「排序」,我的意思是「在這種情況下」:) – Dolph 2010-02-07 06:27:34