2010-02-07 95 views
2

如果我想執行的代碼只有一個變量是true,我應該有:布爾在if語句

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

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

不第一個暗示,也十分重視像1,2,3等將執行該代碼。

第二個是更好的選擇嗎?

+0

旁註:你能想到的''===作爲排序的類似於做'is_bool($選項)&& $ option'。 – Dolph 2010-02-07 04:20:32

+0

@Dolph Mathews:除非比較布爾值以外的東西。 – MitMaro 2010-02-07 04:22:00

+0

「排序」,我的意思是「在這種情況下」:) – Dolph 2010-02-07 06:27:34

回答

6

我想你在找什麼是===操作。 manual給出了各種比較運算符的體面描述。

===運算符比較類型和值。您可能也有興趣PHP Caparison Tables。他們將描述比較運算符在比較兩種不同類型時的工作方式。

4

這兩個語句基本上是一樣的,因爲正如您所指出的那樣,PHP會將多個值計算爲true

如果你想你的比較匹配嚴格布爾TRUE變量,你的第二個語句應該使用:

$option === TRUE 
1

基本上什麼PHP做它的轉變爲最簡單的類型。在這種情況下,它會將整數轉換爲布爾值,任何大於tan 0的整數都將爲true,因此如果$ option具有大於零的整數,則它相當於一個真正的布爾值。

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

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