PHP动态类加载/命名空间


PHP Dynamic Class Loading w/ Namespaces

我在PHP中使用名称空间,并试图动态加载类。我当前的结构看起来像这样:

 class Bootstrap {
    protected $controller = 'home';
    protected $method = 'index';
    protected $params = [];
    function __construct($url) {
        $urlArray = $this->parseurl($url);
        if(file_exists('../app/http/controllers/' . $urlArray[0] . '.php'))
        {
            $this->controller = $urlArray[0];
            unset($urlArray[0]);
        }
        require_once '../app/http/controllers/' .  $this->controller . '.php';
        $this->controller = new Controllers'$this->controller;  
        var_dump($this->controller);
    }
    public function parseurl($url) {
        return $url = explode('/', filter_var(rtrim($url, '/'), FILTER_SANITIZE_URL));
    }
}

得到的错误是:

解析错误:语法错误,意外的'$this' (T_VARIABLE),期望标识符(T_STRING)

我如何使它,所以我可以加载类与这个引导函数?

下一行:

$this->controller = new Controllers'$this->controller;

是无效的PHP代码。

如果需要使用动态类名实例化类,请使用中间变量:

$className = 'Controllers''' . $this->controller;
$this->controller = new $className();

应该可以:

$controller = 'Controllers''.$this->controller;
$this->controller = new $controller();