多个文件的切换语句(例如,用于开关大小写语句的插件系统)


Switch-Statement over multiple files (e.g. Plugin-System for switch-case-statements)

我想为动态开关语句创建一个类似插件系统的东西,如以下示例所示:

$command = $_POST['cmd'];
switch ($command) {
 include "./Ajax_Includer.php";
}

文件"Ajax_Includer"现在应该加载特定文件夹中的所有文件。这些文件都包含一个案例陈述。

这样做的好处应该是我可以添加尽可能多的案例陈述。而且,通过杀死或忽略带有特定案例陈述的文件,删除案例陈述会更容易。

但是我收到一个错误,我不能直接在交换机中使用"包含"。有谁知道解决方法,或者这是不可能的?

像这样打破它:

switch ($command) {
    case 'your_first_case':
        $file = "./Ajax_Includer.php";
        break;
    default:
        $file = null;
        break;
}
if($file){
    include $file
}

尽管在switch中包含文件是完全有效的。


更新:如果您希望您的"案例"在包含的文件中,您会得到一个解析错误,因为switch()

预期大小写 (T_CASE) 或默认值 (T_DEFAULT) 或"}"