2013-04-30 76 views
1

我知道PHP使用懶惰評估/短路運營商。但說我想要評估所有表達式的條件,例如:如何評估條件中的所有表達式?

$a = "Apple"; 
$b = "Banana"; 
$c = "Cherry"; 

function check($fruit) { 
    if ($fruit != "Banana") { 
     echo "$fruit is good.\n"; 
     return true; 
    } else { 
     echo "$fruit is bad.\n"; 
     return false; 
    } 
} 

if (check($a) && check($b) && check($c)) { 
    echo "Yummy!\n"; 
} 

因爲懶惰的評價,這樣只會輸出:

Apple is good. 
Banana is bad. 

比期望的輸出,而:

Apple is good. 
Banana is bad. 
Cherry is good. 

這在表單驗證中很有用。

所以我的問題:有沒有什麼辦法來強制所有的表達式在PHP中進行評估,如果不是,在上面的例子中最好/最快的方式來獲得所需的結果?

+0

怎麼樣美味!檢查a,b或c也返回true? – 2013-04-30 01:46:17

+0

in check func,$ var更改爲$ fruit – 2013-04-30 01:47:41

+0

@JOELEE Typo固定。感謝您指出了這一點。 – 2013-04-30 02:28:31

回答

0
function check($fruit) { 
    echo ($fruit != "Banana") ? "$fruit is good.\n" : "$fruit is bad.\n"; 
    return $fruit != "Banana"; 
} 


$a = "Apple"; 
$b = "Banana"; 
$c = "Cherry"; 
if (check($a) & check($b) & check($c)) { 
    echo "Yummy!\n"; 
} 


/* 
Apple is good. 
Banana is bad. 
Cherry is good. 
*/ 


$a = "Apple"; 
$b = "apple"; 
$c = "Cherry"; 
if (check($a) & check($b) & check($c)) { 
    echo "Yummy!\n"; 
} 


/* 
Apple is good. 
apple is good. 
Cherry is good. 
Yummy! 
*/