克隆对象为$ this

Shi*_*iro 3 php clone object

我想问一下PHP克隆/复制对象到$ this变量.

目前我是MVC的新手,我想做CodeIgniter之类的事情.

我想直接访问变量.

在我的__construct()中,我总是将全局变量传递给新的控制器(类),

例如.

function __construct($mvc)
{
    $this->mvc = $mvc;
}
Run Code Online (Sandbox Code Playgroud)

在$ mvc里面得到了配置对象,vars对象.

例如,目前

function index()
{
    $this->mvc->config['title'];
    $this->mvc->vars['name'];
}
Run Code Online (Sandbox Code Playgroud)

**我想要的更直接**

function index()
{
    $this->config['title'];
    $this->vars['name'];
}
Run Code Online (Sandbox Code Playgroud)

我试过了

function __construct($mvc)
{
    $this = $mvc;
}
Run Code Online (Sandbox Code Playgroud)

要么

function __construct($mvc)
{
    $this = clone $mvc;
}
Run Code Online (Sandbox Code Playgroud)

它不成功.任何想法,我可以关闭$ this-> mvc到$这个级别?我尝试foreach也没有成功.请帮忙,谢谢!

Fel*_*ing 7

一个优雅的解决方案是覆盖__get():

public function __get($name) {
    return $this->mvc->$name;
}
Run Code Online (Sandbox Code Playgroud)

__get()只要您尝试访问类的不存在的属性,就会调用它.这样,您就不必复制类中的每个属性mvc(这可能会覆盖类中的属性).如果需要,您还可以检查是否$name存在mvcproperty_exists.