PHP动态类加载w /命名空间

时间:2016-09-19 19:38:12

标签: php namespaces

我在PHP中使用命名空间,并尝试动态加载类。我目前的结构如下:

namespace DemoWPFApp1.ViewModels
{
    public class MainWindowViewModel : BaseViewModel
    {
        private string m_boundProperty;
        public string BoundProperty
        {
            get
            {
                return m_boundProperty;
            }
            set
            {
                m_boundProperty = value; OnPropertyChanged();
            }
        }

        public MainWindowViewModel()
        {
            BoundProperty = "Some value.";
        }
    }
}

我得到的错误是:

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

如何制作它以便我可以使用此引导函数加载类?

2 个答案:

答案 0 :(得分:0)

以下一行:

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

是无效的PHP代码。

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

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

答案 1 :(得分:0)

这应该有效:

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