我想为动态开关语句创建一个类似插件系统的东西,如以下示例所示:
$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) 或"}"