OR运算符未返回true

时间:2017-10-07 19:26:10

标签: php

我在这里遇到了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;

基本上用户输入他的IDcode 示例50005120342

不介意其他数字。

基本上我想要的是,如果第一个数字是1或2,它应该输出18 +其他数字相同,如果它是5或6它应该输出20。 但在我的情况下,它始终显示18,我无法弄清楚原因。

编辑: 道歉,由于经常使用C#,这里的逻辑并不适用。 再次抱歉

3 个答案:

答案 0 :(得分: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 || 2中,1被分配给$IDCode1 || 2评估的第一个元素。这总是很简单。

答案 1 :(得分:0)

条件应该是:

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

答案 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评估为真,因为它设置了变量,并且始终为真。 / p>

相关问题