【发布时间】:2017-08-29 14:38:09
【问题描述】:
我正在用 PHP 编写一个类和方法,它使用 switch 来调用依赖于特定 url 的其他方法。下面的例子:
switch($this->clean([$_POST['task']))
{
case "edit":
$this->editssomething();
break;
case "save":
$this->savesomethingelse();
break;
default:
$this->dodefault();
break;
}
这是否被归类为代码异味,我应该对其进行重构还是将其归类为工厂类。
谢谢
【问题讨论】:
-
在我看来,这正是
switch的本意。 -
它通常比加载
if/else if块要清晰得多。 -
我以前从未听说过“代码气味”这个词,所以感谢您提醒我注意它有一个名字^.^
-
绝对没问题。 switch 语句的整个概念是减少嵌套和混乱的 if 语句的数量!这是很好的编程习惯! :)
-
这可能会因为基于意见而关闭,但通常最好为每个操作设置单独的控制器方法。所以有单独的
/save和/edit路由,而不是根据另一个请求参数处理它们的调度程序。
标签: php switch-statement