如果和其他人没有用

时间:2014-05-04 22:07:04

标签: php

对于凌乱的代码很抱歉,但基本上这段代码只会生成$booktype = "ICT",如果我从elseif中删除“else”,则会使其等于ENGLISH

出了什么问题?

我回应了POST_ Book room,结果很好。

if ($_POST['bookroom'] == "142" || "040" || "139"|| "104") {
    $booktype = "ICT";
} elseif ($_POST['bookroom'] == "015" || "016" || "017" || "018" || "027" || "028") {
    $booktype = "MATHS";
} elseif ($_POST['bookroom'] == "E03") {
    $booktype = "MUSIC";
} elseif ($_POST['bookroom'] == "202" || "204" || "205" || "206" || "207") {
    $booktype = "ENGLISH";
}

4 个答案:

答案 0 :(得分:5)

在一天结束时,您没有使用'或'正确。要缩短代码,您可以像这样执行if语句:

if(in_array($_POST['bookroom'], array("142","040","139","104"))) {

正确使用"或"或"和"条款,您需要使声明自成一体。也就是说,

if(this option is true || this option is true || this option is true)
if($a == 4 || $a == 5 || $a == 6)

答案 1 :(得分:1)

你不能像这样连锁条件。将其更改为

$_POST['bookroom'] == "142" || $_POST['bookroom'] == "040" || [...]

此外,使用带有漏洞的switch case在这里更具可读性。

答案 2 :(得分:1)

您也可以将其更改为使用in_array函数:

自:

if ($_POST['bookroom'] == "142" || "040" || "139"|| "104"){

if (in_array($_POST['bookroom'], array("142","040","139","104"))){

答案 3 :(得分:0)

你可以使用开关!

switch($_POST['bookroom']){

case "142":
...
break;

case "040":
...
break;

}