我在这里遇到了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#,这里的逻辑并不适用。 再次抱歉
答案 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
被分配给$IDCode
和1 || 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>