【问题标题】:Using switch inside a function, should break be used after a return true?在函数内部使用switch,是否应该在return true后使用break?
【发布时间】:2013-05-31 13:02:10
【问题描述】:
function newLinks($a,$b,$c,$d,$e,&$links) {

    switch ($a) {
        case '00':
        $links = "Under Process";
        return true;
           break;


        case '01':
        $links = "Processed";
        return true;
            break;

        case '10':
        $links = "Deleted. Under Process";
        return true;
           break;

        case '11':
        $links = "Deleted. Processed";
            return true;
            break;

        default:
        return false;
    }
}

return true后需要break吗?

因为我做了这样的事情:

if ( newLinks($a,$b,$c,$d,$e,$links) ) {
    echo $links;
} else {
    echo 'Failed';
}

【问题讨论】:

  • 为什么要用$links作为out参数?这是 PHP,您可以返回字符串或 false,调用者可以轻松区分它们。不需要return true,您可以简单地return "Whatever" 并完全删除对$links 的所有引用。
  • @Jon 对不起,我没听懂你。你看到我调用函数的方式了吗?我需要 $link 所以我可以在下面的脚本中使用它。你有另一种方法吗? --从我的移动设备发送

标签: php function switch-statement


【解决方案1】:

Break 在这种情况下是不必要的,因为函数在返回值后立即终止,因此无论如何都不会到达 break 语句。

【讨论】:

    【解决方案2】:

    不,您不需要break;,因为在调用return 后该函数不会进一步执行。

    【讨论】:

      【解决方案3】:

      为了清楚起见,您可以留下休息时间来区分案例。但是,这可能会在未来导致更大的问题,因为您可能不会注意到回报。

      为什么不每一种情况都设置一个变量,在switch函数结束后返回一次呢?在我看来,这将使代码更加清晰。

      【讨论】:

      • +1 多个退出点会增加代码复杂性。在这种情况下,完全没有必要。
      【解决方案4】:

      return 语句只会将其从函数中拉出。在这种情况下,您不需要 break 语句。

      【讨论】:

        【解决方案5】:

        就像一些朋友说的,break 不需要顺便说一句

        【讨论】:

          猜你喜欢
          • 2018-05-02
          • 2023-04-08
          • 2023-02-10
          • 1970-01-01
          • 1970-01-01
          • 2011-03-12
          • 2017-05-16
          • 2010-09-20
          • 1970-01-01
          相关资源
          最近更新 更多