php - 为什么我不能使用这样的开关?

标签 php oop

我正在学习 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/

相关文章:

python - 多态性或继承或任何其他建议?

php - 解析MySQL准备语句

javascript - 如何从Ajax post获取对象数组数据到php

php - 为老式文件上传添加不显眼的进度条

php - 只是 html/js 还是与服务器端代码混合?

c++ - 纯虚函数问题

Java OO 设计 : a Person can be either Singer, 钢琴家或两者

javascript - 在 Javascript OOP 中调用嵌套函数

c# - 使用字符串选择对象属性

php - Drupal 站点 javascript 注入(inject)修复