2017-08-18 3 views
0
class ClassOne 
{ 
    private $foo = null; 

    public function __construct() 
    { 
     $this->foo = new ClassTwo(); 
    } 

    public function doStuff() 
    { 
     $bar = &$this->foo->someVariable; 
    } 
} 

私は、$thisが現在のオブジェクトを参照しており、&が元の変数を変更するための参照記号であることを知っています。

&$thisとは何ですか? &全体$this->foo->someVariable

を参照していることを明確にするため、@ k0pernikusと@trincotへ

+1

'$ bar =&$ foo'があなたにとって理にかなっているなら、なぜ' $ bar =&$ this'が違うのですか? – zzzzBov

+7

'&'はその右側のすべてに適用されるので、 '$ this-> foo-> someMethod'への参照ではなく、' $ this'であることに注意してください。 – trincot

+0

あなたは何を達成しようとしていますか?あなたは '$ this-> foo-> someMethod'への参照を' $ bar'に格納しています。あなたはそれについて理解していないのでしょうか? – k0pernikus

答えて

0

おかげで、だから、原作者は$this->foo->someVariablesomeVariableを変更するようでした。冗長なので、$barへの参照を割り当てました。

ただし、これはPHP4で行われました。これをPHP5で書くには、より良い方法が必要です。

+0

'$ someVariable'がオブジェクトを保持していれば、参照は不要です(有用ではありません)。それ以外の場合は、PHP 5またはPHP 7で記述するのが良い方法はありません。 – axiac

関連する問題