2009-12-07 100 views
7

我無法弄清楚這一點。PHP boolean TRUE/FALSE?

如果鍵入:

function myfunction(){ 
    ...... 
    if ... 
     return TRUE; 
    if ... 
     return FALSE; 
} 

爲什麼我不能這樣使用它:

$result = myfunction(); 
if ($result == TRUE) 
... 
if ($result == FALSE) 
... 

還是我必須使用:

$result = myfunction(); 
if ($result == 1) 
... 
if ($result == 0) 
... 

或者這樣:

$result = myfunction(); 
if ($result) 
... 
if (!$result) 
... 
+0

小備註:代碼讀取這樣的:'如果......返回true;否則返回false;'應該**總是**被重寫爲'return ... === true;'或者在類型安全的語言中,簡單地返回...;'。 'if'在這裏根本沒有意義,因爲我們正在測試的條件已經與返回值相對應。 – 2011-12-31 21:52:58

回答

17

我不完全明白你的問題,但你可以使用任你提供的例子,有以下注意事項:

如果你說if (a == TRUE)(或者,因爲比較true是多餘的,只需要if (a)),你必須明白,PHP會評估幾件事情是真實的:1,2,987,「hello」等;他們都是「真實」的價值觀。這很少是一個問題,但你應該理解它。

但是,如果功能可能返回超過truefalse,您可能有興趣使用======確實比較變量的類型:"a" == truetrue,但"a" === true是錯誤的。

+0

不錯的答案。它真的清除了一些點。 – skiabox 2012-10-22 18:53:52

0
if($variable) 
//something when truw 
else 
//something else when false 

請記住,值-1被認爲是真,就像任何其他非零(不論是負數還是正數)數一樣。 FALSE將0 OBV ...

5

你可以做這樣的

$result = myfunction(); 
if ($result === TRUE) 
... 
if ($result === FALSE) 
... 
+0

我想說你應該這樣做... – HorusKol 2009-12-07 06:22:45

3

您可以使用if($result == TRUE)但這是一個矯枉過正的if($result)就夠了。

6

如果你不需要進一步使用結果變量$結果,我會做以下最短版本:

if (myfunction()) { 
    // something when true 
} else { 
    // something else when false 
}