我正在尝试为我的某个应用制作一个插件系统,但我遇到了一些麻烦。
我正在尝试弄清楚如何使用插件类动态地将其他开关块添加到switch语句。
以下是我正在尝试做的一个基本示例,是否有人知道如何实现这一目标?
switch($_GET['section']){
default:
// code here
break;
case 'test':
// code here
break;
$plugins->run('page');
}
class plugins {
function run($section){
if($section=='page'){
case 'test2':
// code here
break;
}
}
}
插件类中的case语句是我想要返回到原始switch语句的内容。因此,在插件类中,我可以添加可包含在原始switch语句中的其他案例。
所以我认为基本上只是想知道是否可以在switch语句中动态添加其他案例。
答案 0 :(得分:0)
我认为你可以通过使用类和继承来更好地实现你想要做的事情。
答案 1 :(得分:-1)
这是错误的语法:
if($section=='page'){ // WRONG!
case 'test2':
// code here
break;
}
你可以这样做:
switch ($section) {
case 'page':
switch ($whatever) {
case 'test':
// do something
break;
}
break;
default:
// do default stuff
break;
}
使用switch
代替if else
始终是个好主意!