使用PHP 5.5,
我允许我的用户提交一个包含下拉列表的表单。
根据下拉列表,我将为特定操作调用不同的类。
目前,我使用的是一个开关盒,但是类的数量现在会从当前的3个增加到25个。开关盒很难看。
这是我的代码
// call the right reader based on vendor
switch($vendor) {
case 'A':
$vendorReader = new AReader();
break;
case 'B':
$vendorReader = new BReader();
break;
case 'C':
default:
$vendorReader = new CReader();
break;
}
我故意以这种方式命名这些类,因此使用变量$vendor
来调用相关$vendorReader
类的构造函数更容易。
根据变量调用正确的读者类是什么好方法?
答案 0 :(得分:1)
如果用户选择来自下拉列表,那么我可以通过GET / POST推断它也来自表单吗?在这种情况下,您可以不使用菜单名称吗?
if (isset($_POST['my_class_selection_dropdown)) {
$selection = $_POST['my_class_selection_dropdown];
if(class_exists($selection)) {
$vendorReader = new $selection();
}
}
}