【问题标题】:PHP switch statement doesn't executes values using returnPHP switch 语句不使用 return 执行值
【发布时间】:2015-03-02 13:47:34
【问题描述】:

是否有可能PHP switch 语句在使用return 时没有执行switch 想要的结果?

这两种说法有什么区别?

$foo = '2';    
switch ($foo) {       
    case 1:
        echo 1;
        break;

    case 2:
        echo 2;
        break;
}

执行 2

$foo = '2';    
switch ($foo) {       
    case 1:
        return 1;
        break;

    case 2:
        return 2;
        break;
}

好像没用。

有没有办法让它工作?

【问题讨论】:

  • 你在函数内部吗?
  • 不,我在一个空白的新文件上测试过。
  • 如果您不在函数中,return 应该停止文件的执行。 php.net/manual/en/function.return.php。是怎么回事吗?
  • 尝试写入“2”和“1”。没有改变。我遇到这个问题的原因是开关在函数内部,问题是我希望返回开关结果而不是返回或打印。
  • @DavSev 你有冲突的反应。在您的第一条评论中,您声明您不在一个函数中,使用一个空白的新文件。在您的第二个回复中,您声明您在一个函数中。是哪个?

标签: php switch-statement return


【解决方案1】:

echo 输出您传递的值 (1, 2)
return 将值传递给调用模块。

第二段代码确实有效,但您看不到任何视觉输出。

【讨论】:

  • 如何在使用return的同时看到它的价值?
【解决方案2】:

这里是如何在函数中使用 case 语句 -

function myFunction($foo) {
    switch ($foo) {       
        case 1:
            return 1;
            break;

        case 2:
            return 2;
            break;

        default:
            return 'no matching values were sent to the function';
            break;
    }
}

echo myFunction(2); // will echo '2'

在这样的函数中,您不需要使用 break 语句,return 负责中断。这只是一个好习惯。您应该养成在开关中使用默认情况的习惯,即使您只使用它们将错误记录到日志或类似的东西中。

【讨论】:

  • 然后删除 break 语句
  • 如何添加从不运行且不执行任何操作的代码是“好的做法”?这对我来说完全是不好的做法。我看着回报,然后是休息,然后是回报,然后想我是否错过了什么。然后走开,无论哪个开发人员做了这个完全没有意义的事情,我都摇头。
【解决方案3】:

return 与函数一起使用。第二个将在函数内部执行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2018-06-26
    相关资源
    最近更新 更多