是否使用php切换代码气味
我正在用PHP编写一个类和方法,它使用switch调用依赖于特定url的其他方法。示例如下:是否使用php切换代码气味,php,switch-statement,Php,Switch Statement,我正在用PHP编写一个类和方法,它使用switch调用依赖于特定url的其他方法。示例如下: switch($this->clean([$_POST['task'])) { case "edit": $this->editssomething(); break; case "save": $this->savesomethingelse(); break; default: $this-&g
switch($this->clean([$_POST['task']))
{
case "edit":
$this->editssomething();
break;
case "save":
$this->savesomethingelse();
break;
default:
$this->dodefault();
break;
}
这是否被归类为代码气味,我应该重构它还是将其归类为工厂类
谢谢你,闻起来不错,但是默认值不需要“break”,还要确保用camel或“\ux”来命名你的函数
这听起来不错,但默认值不需要“break”,还请确保使用camel或“\ux”来命名函数
在我看来,这正是
switch
的用意。它通常比一堆if/else if
块清晰得多。我以前从未听说过“代码气味”这个词,因此感谢您提醒我它有一个名称。^这绝对好。switch语句的整个概念是减少嵌套和混乱的if语句的数量!这是很好的编程实践!:)这可能会以基于意见的方式结束,但通常最好为每个操作使用单独的控制器方法。因此,要有单独的/save
和/edit
路由,而不是由调度员根据另一个请求参数处理它们。在我看来,这正是开关的本意。它通常比一堆if/else if
块清晰得多。我以前从未听过“代码气味”这个词,谢谢你让我注意到它有一个名字^那太好了。switch语句的整个概念是减少嵌套和混乱的if语句的数量!这是很好的编程实践!:)这可能会以基于意见的方式结束,但通常最好为每个操作使用单独的控制器方法。因此,应该有单独的/save
和/edit
路由,而不是基于另一个请求参数处理它们的调度程序。
switch( $this->clean($_POST['task']) )
{
case "edit":
$this->editssomething();
break;
case "save":
$this->savesomethingelse();
break;
default:
$this->dodefault();
}