我正在使用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 =& new $model;
$this->_template =& new Template($controller,$action);
}
function set($name,$value) {
$this->_template->set($name,$value);
}
function __destruct() {
$this->_template->render();
}
}
答案 0 :(得分:3)
&
用于通过引用分配该对象,但不推荐使用它。
默认情况下,对象在PHP 5中被指定为引用,因此这里不需要使用它。
答案 1 :(得分:2)
& 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();