2016-09-03 4 views
1

クラスに別の関数を呼び出した後から関数を呼び出します。PHP - 私はこのクラスの持っている

class myClass 
{ 
    function A() { 
     $x = "Something "; 
     return $x; 
    } 
    function B() { 
     return "Strange"; 
    } 
} 

をしかし、私はこのような関数を呼び出したい:

私はそれを行うことができますどのように
myClass()->A()->B(); 

クラス自体を返すことなく($ thisを返します)?

+0

返すものは何ですか?チェーンコールを行うには、クラスmyClassのオブジェクトを返す必要があります。 –

答えて

4

メソッド連鎖を実現するには、チェーンのメソッド(最後のものを除く)がオブジェクトを返さなければなりません(多くの場合、そしてあなたの中にも$this)。

メソッドチェーンを使用して文字列を作成する場合は、プロパティを使用してそれを格納する必要があります。簡単な例:

class myClass 
{ 
    private $s = ""; 
    function A() { 
     $this->s .= "Something "; 
     return $this; 
    } 
    function B() { 
     $this->s .= "Strange"; 
     return $this; 
    } 
    function getS() { 
     return $this->s; 
    } 
} 

// How to use it: 
new myClass()->A()->B()->getS(); 
関連する問題