-1

可能重复:
参考 - 这个符号在 PHP 中是什么意思?

我正在使用本教程学习 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();
    }

}

4

3 回答 3

3

&在这种情况下,用于通过引用分配的对象,但不推荐使用。在 PHP 5 中,对象被默认分配为引用,所以这里不需要使用它。

于 2012-11-24T06:22:13.587 回答
2

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

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

=& in php与通过引用传递某些东西有关。

虽然有些人会争辩说在 PHP5 上不需要它(我同意),但它并不完全相同,并且知道它可能会有所帮助......

(来自手册)

经常提到的 PHP 5 OOP 的关键点之一是“对象默认通过引用传递”。这并不完全正确。

本节通过一些例子来纠正这种普遍的想法。

于 2012-11-24T06:18:56.993 回答
0

在 PHP 中

$a = &$b

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

$a = new b();
于 2012-11-24T06:24:42.913 回答