php特殊符号

时间:2012-11-24 06:14:25

标签: php reference variable-assignment

  

可能重复:
  Reference - What does this symbol mean in PHP?

我正在使用this tutorial学习PHP MVC。在那里我发现了以下特殊符号 用于对象初始化

$this->$model =& new $model;

我知道&用于表示HTML中的&符号(&)。这里的意思是什么?。下面给出了表示符号的类。那个教程怎么样?。它是一个好的吗?。如果不是,任何人都可以参考我还好吗?

<?php
class Controller {

    protected $_model;
    protected $_controller;
    protected $_action;
    protected $_template;

    function __construct($model, $controller, $action) {

        $this->_controller = $controller;
        $this->_action = $action;
        $this->_model = $model;

        $this->$model =&amp; new $model;
        $this->_template =&amp; new Template($controller,$action);

    }

    function set($name,$value) {
        $this->_template->set($name,$value);
    }

    function __destruct() {
            $this->_template->render();
    }

}

3 个答案:

答案 0 :(得分:3)

此上下文中的

&用于通过引用分配该对象,但不推荐使用它。 默认情况下,对象在PHP 5中被指定为引用,因此这里不需要使用它。

答案 1 :(得分:2)

&amp; translates to &所以它将通过引用进行分配。 (由DCoders评论) 您所看到的实际上应该是:

$this->$model =& new $model;

And =& in php relates to passing something by reference.

虽然有些人认为在PHP5上不需要(并且我同意)它不完全相同并且知道它可能有帮助...

  

(来自手册)

     

经常提到的PHP 5 OOP的一个关键点是   “默认情况下,对象通过引用传递”。这不完全   真。

     

This section rectifies that general thought using some examples.

答案 2 :(得分:0)

在PHP中

$a = &$b

表示通过引用传递值。  在版本5的PHP中,默认情况下,所有对象都通过引用传递。所以你可以跳过&amp;符号

$a = new b();