【问题标题】:Switch Case in php Multiple Case run in function?Switch Case in php Multiple Case在函数中运行?
【发布时间】:2013-08-22 03:07:14
【问题描述】:
switch(n){
case "badge01":
case "badge02":
case "badge03":
case "badge04":
case "badge05":
//dosomething
     break;
}

你好上面的 switch case 语句,我想使用一个函数来运行多重循环来生成 case 的名称,那么我可以知道如何在这样的 switch case 语句上生成 with function 吗?

switch(n){
case badgenameloop():
//dosomething
     break;
}

那有可能吗?

感谢和抱歉我的英语不好。

【问题讨论】:

    标签: php function for-loop switch-statement


    【解决方案1】:

    根据PHP Manual

    case 表达式可以是计算结果为简单类型的任何表达式,即整数或浮点数和字符串。数组或对象不能在此处使用,除非它们被取消引用为简单类型。

    恐怕你不能为 case 声明循环,因此浪费时间尝试。

    【讨论】:

    • 不幸的是,对于 OP 来说,这是真正的程序员必须忍受的单调任务之一。
    【解决方案2】:

    例如,您可以这样做:

    function badgenameloop($key)
    {
        switch($key){
            case "badge01":
            case "badge02":
            case "badge03":
            case "badge04":
            case "badge05":
                echo "badge 1";
                break;
        }
    }
    
    function badgename2loop($key)
    {
        switch($key){
            case "badge_2_01":
            case "badge_2_02":
            case "badge_2_03":
            case "badge_2_04":
            case "badge_2_05":
                echo "badge 2";
                break;
        }
    }
    
    $key = "badge_2_01";
    switch($key){
        case badgenameloop($key): break;
        case badgename2loop($key): break;
    }
    

    【讨论】:

    • 对不起,但这不会产生很多逻辑,手动输入所有案例正是 OP 想要避免的,并且将它们从案例语句移动到函数调用并不能削减它.根据这个解决方案,他们仍然必须输入每个案例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    相关资源
    最近更新 更多