2010-10-28 52 views
0

這可能是一個簡單的答案,但我很好奇,如果你有PHP代碼像這樣說:分組AND和OR在PHP的if語句

if($_SESSION['id'] == '000001' || $_SESSION['id'] == '000002') { 

難道那些值不知何故分組?我的想法是這樣的:

if($_SESSION['id'] == ('000001' || '000002')) { 

不是一個很大的交易,只是想知道是否有可能。如果不是,它似乎應該是。

+0

Prolly值得擁有的值在陣列並遍歷它,做在檢查中的每個值陣列。雖然可能效率低下。 – brumScouse 2010-10-28 18:32:48

+0

雖然你的分組嘗試可能看起來很直觀,但PHP(像大多數其他語言)的確可以這樣工作。內部表達式'('000001'||'000002')'首先被評估爲'true',因爲一個或多個值不是錯誤的(在這種情況下)。然後主表達式變成'if($ _SESSION ['id'] == true)'。 – Matthew 2010-10-28 18:48:48

回答

3

它是使用in_array()種可能:

if (in_array($_SESSION['id'], array("000001", "000002"))) 

或可替代地使用switch

switch ($_SESSION["id"]) 
{ 
    case "000001": 
    case "000002": 
    // do something 
    break; 

    default: 
    break; 
} 
+0

+1因爲我喜歡in_array :) – middus 2010-10-28 18:42:44