我有以下工作正常:
use frontend'models'modules'shipping'Usps;
$shipping = new Usps;
但是,如果我使用以下方法,则会抛出错误:找不到类"Usps"
use frontend'models'modules'shippingl'Usps;
我正在动态加载类,因此在调用新$class时无法使用命名空间,例如。我可能还有:
use frontend'models'modules'payment'Usps;
$class = 'Usps';
$shipping = new $class;
如何使用变量完成这项工作? 如果我不使用命名空间/自动加载,而只包含类文件,它就可以正常工作。
此问题不是重复的,引用的问题/答案不声明"使用"。
这是我
看到它工作的唯一方法,没有安全问题和大量错误,特别是如果$class
来自用户输入。
我添加了一个"Ups"类,所以它更有意义。
use frontend'models'modules'payment'Usps;
use frontend'models'modules'payment'Ups;
if($class == 'Usps') {
$shipping = new Usps;
} else if($class == 'Ups') {
$shipping = new Ups;
} else {
// No valid class found - handle accordingly
}