我正在学习 OOP PHP。我在程序方面有几年的经验,但想将它提升到一个新的水平。
无论如何,在我的干净整洁代码的心态下,尝试了一些我学到的关于 OOP 的东西,我尝试了一些我以前从未尝试过的普通 PHP Switch 语句,在我看来,这是非常合乎逻辑的让它像这样工作,但它不工作。
switch(strtoupper($type)) {
case "DELETE" || "UPDATE":
$result['info'] = mysql_affected_rows($this->con);
break;
case "INSERT":
$result['info'] = "Insert Successful";
break;
case "SELECT":
$result['info'] = mysql_num_rows($res);
$result['data'] = mysql_fetch_array($res);
break;
}
发生的情况是,第一种情况,无论 $type 是否包含“SELECT”,其中带有“or”的就是匹配的。如果我有 8 个结果都不同,但有 2 个结果相同,我必须复制第一个案例,这似乎很垃圾,为什么我不能像这样使用开关?
谢谢。
最佳答案
使用:
switch(strtoupper($type)) {
case "DELETE":
case "UPDATE":
$result['info'] = mysql_affected_rows($this->con);
break;
case "INSERT":
$result['info'] = "Insert Successful";
break;
case "SELECT":
$result['info'] = mysql_num_rows($res);
$result['data'] = mysql_fetch_array($res);
break;
}
开关没有“或”,您必须分别列出每个案例。
关于php - 为什么我不能使用这样的开关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7153749/