2017-10-07 8 views
-2

を返さないコードです:は、OR演算子、私はここにOR演算子との問題を抱えている真の

$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; 

だから、基本的にユーザーがの彼のIDコード 例を入力し50005120342

他の数字を気にいけません。

本質的に私が望むのは、最初の数字が1または2の場合は、出力する必要があります。18 + 5または6の場合は20を出力する必要があります。 しかし、私の場合は常に18とI理由を理解できません。

EDIT: C#で頻繁に動作するため、申し訳ありませんが、ここではロジックは適用されません。 もう一度申し訳ありません。

答えて

3

複数の条件がこのように組み合わされています。 $IDCode[0] = 1 || 2

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] ; 
} 

1$IDCodeと評価1 || 2ための最初の要素に割り当てられます。これは常に真実です。

0

条件は次のとおりです。

$ IDCode [0] == 1 ||変数が誤ってIDKoodとして書かれていたものの$ IDCODEは、[0] == 2

0

あなたはあなたの第二の条件else if ($IDKood[0] = 5 || 6)については

$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; 

複数の組み合わせのための完全な条件を記述する必要があり、このプログラムは、$IDCode[0] = 5|| 6 trueと評価しますそれは変数を設定していたので、常に真です。