我可能只需要更新术语,但我一直在 Magento 和 Joomla 中玩,他们确实提供了类似的引用
$mage = new Mage;
$mage->block('blockname');
法师类通过一些我无法弄清楚的过程正在调用:
class blockname extends something{
}
不要引用我的代码,但是我希望做类似的事情,我有一个可以执行的文件 $myscript->block('blockname');它将加载并调用具有类 block 名的文件。
最佳答案
class Mage {
private $block;
public function block($blockname) {
if (!class_exists($blockname, true)) {
throw new InvalidArgumentException("Not a valid class name: $blockname");
}
$this->block = new $blockname;
}
}
类定义的加载(如果尚未完成)通常是通过自动加载完成的(请参阅 here )。
关于php - 嵌套动态 PHP 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029820/