-1

重複の可能性:
参照-この記号はPHPで何を意味しますか?

このチュートリアルを使用してPHPMVCを研究しています。そこで、オブジェクトの初期化に使用される次の特別な表記法を見つけました。

$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ではそれは必要ないと主張する人もいますが(そして私は同意します)、それはまったく同じものではなく、それが役立つかもしれないことを知っています...

(マニュアルより)

よく言及されるPHP5OOPの重要なポイントの1つは、「オブジェクトはデフォルトで参照によって渡される」ということです。これは完全には真実ではありません。

このセクションでは、いくつかの例を使用して、その一般的な考え方を修正します。

于 2012-11-24T06:18:56.993 に答える
0

PHPで

$a = &$b

値を参照渡しすることを意味します。バージョン 5 以降の PHP では、すべてのオブジェクトがデフォルトで参照によって渡されます。したがって、スキップして記号を付けることができます

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