2012-04-21 1 views
1

私は次のコードを持っていると言います。PHPメソッドの親との連結

class A { 
    function one() { 
     return $this; 
    } 
} 

class B extends A { 
    function two() { 
     return $this; 
    } 
} 

親クラスの関数を使用してチェーンを連鎖させる方法はありますか? など..

$b = new B(); 
$b->one()->two(); 
+3

どうしたのですか?それは私のために動作しますそこにいくつかのエコーを追加すると、正しい順序で出力が表示されます。 – Gohn67

+0

@ Gohn67 - あなたの権利、..私の本当の方法では、何か間違っているはずです。ページはクラッシュし続けます。私はこの単純化されたバージョンを最初にテストしなければならないと思います。 :)ありがとう! – cnotethegr8

答えて

0

特殊変数$thisの意味を説明し、いくつかの応答をthis questionを参照してください。

要するに、現在のオブジェクトを参照しています。 Bのインスタンスを作成していますので、をfunction one()の範囲で参照していても、そのインスタンスを引き続き参照しています。

+0

BはAを継承しているので、彼のコード例が実際に動作すると思います。 – Gohn67

+0

はい、コードは実行されます。私はコードが動作しないとは言いませんでした。私はちょうど '$ this 'がどちらの場合でも' B'のインスタンスを参照すると言っています。 –

+1

ああ、申し訳ありません、私は読解のレッスンが必要です。 – Gohn67