这是我的代码:
switch($type)
{
case 'all':
one();
two();
three();
break;
case 'only_important':
one();
two();
break;
case 'first':
one();
break;
case 'second':
two();
break;
case 'third':
three();
break;
}
您有建议改进这一点,以避免重复函数名称吗?
好吧,让我展示一下我的想法,尽管我仍然认为你可以提供更多信息。
您调用的功能似乎很重要,并且您希望确保不会错过组类别中的任何功能。为什么不创建一个数组呢?像这样的东西:
$branches = ['one', => ['type' => 'first', 'important' => TRUE],
'two', => ['type' => 'second', 'important' => TRUE],
'three' => ['type' => 'third', 'important' => FALSE]];
switch($type)
{
case 'all':
foreach ($branches as $functionName => $branch) {
$functionName();
}
break;
case 'only_important':
foreach ($branches as $functionName => $branch) {
if ($branch['important']) {
$functionName();
}
}
break;
default :
foreach ($branches as $functionName => $branch) {
if ($type == $branch['type']) {
$functionName();
}
}
break;
}
我选择“分支”这个词来理解你的代码,但你可以选择其他任何东西。
现在,当您想要添加新分支时,您只需要编辑数组,这可能不太容易出错。您甚至可以毫无问题地将新组添加到阵列中。