这是我的静态代码 -$tireBrick = new DataObject\Objectbrick\Data\classname($object);我需要的是,我需要将“类名”更改为变量(动态加载类)`$tireBrick = new DataObject\Objectbrick\Data\$brickName($object);` //But php doesn't allow to use this syntax.如您所见,它将动态分配“ $brickName($object)”谁能帮我动态加载这个类?谢谢塔兰加。
3 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
用于::class获取完整的类名:
$myClass = classname::class; // DataObject\Objectbrick\Data\classname
$tireBrick = new $myClass($object);
慕森王
TA贡献1777条经验 获得超3个赞
$tireBrick = "new DataObject\\Objectbrick\\Data\\".$brickName($object);
或者尝试了解命名空间以缩短它
绝地无双
TA贡献1946条经验 获得超4个赞
我有一堆拼写检查类解决了这个问题。它看起来像这样:
$baseClass = 'SpellChecker';
$activeChecker = $activeChecker ? 'Hun' : Yii::$app->params['spellChecker']['active'];
$spellCheckerClass = "common\\models\\spellchecker\\$activeChecker$baseClass";
然后你可以像这样使用它:
/** @var SpellChecker $spellChecker */
$spellChecker = new $spellCheckerClass();
现在整个事情的本质是如果你使用类似的类是最好的,所以你可以使用这些函数而不用担心如果函数不存在它们会使应用程序崩溃。为此,您可以实现一个观察者模型,在其中定义要在观察者类中使用的每个函数,然后创建子类,在其中覆盖观察者类的功能。
- 3 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消