2017-10-07 91 views
-2

我有一個問題,通過OR運算符下面的代碼:OR運算符不返回true

$Year; 
    if ($IDCode[0] = 1 || 2) { 
     $Year = "18" . $IDCode[1] . $IDCode[2] ; 
    } 

    else if ($IDCode[0] = 5 || 6) { 
     $Year = "20" . $IDCode[1] . $IDCode[2] ; 
    } 
    echo $Year; 

所以基本上用戶輸入的他IDCODE 例如50005120342

不介意其他的數字。

本質上我想要的是,如果第一個數字是1或2它應該輸出18 +其他數字相同,如果它是5或6它應該輸出20. 但在我的情況下總是顯示18和I無法弄清楚爲什麼。

編輯: 道歉,由於經常使用C#,這裏的邏輯不適用於此。 對不起再

回答

3

這種方式結合了多個條件。

if ($IDCode[0] == 1 || $IDKood[0] == 2) { 
    $Year = "18" . $IDCode[1] . $IDCode[2] ; 
} 

else if ($IDKood[0] == 5 || $IDKood[0] == 6) { 
    $Year = "20" . $IDCode[1] . $IDCode[2] ; 
} 

$IDCode[0] = 1 || 21被分配到所述第一元件,用於$IDCode1 || 2評價。這總是很有道理。

0

條件應該是:

$ IDCode [0] == 1 || $ IDCODE [0] == 2

0

你應該寫完整的條件多重組合

$IDCode = "50005120342"; 
if ($IDCode[0] == 1 || $IDCode[0] == 2) { 
    $Year = "18" . $IDCode[1] . $IDCode[2] ; 
} 

else if ($IDCode[0] == 5 || $IDCode[0]==6) { 
    $Year = "20" . $IDCode[1] . $IDCode[2] ; 
} 
echo $Year; 

關於第二個條件else if ($IDKood[0] = 5 || 6),儘管變量被錯誤地寫成IDKood,程序評估$IDCode[0] = 5|| 6爲真,因爲它始終是設置變量和哪個是真的。