2012-07-19 13 views
12

私はPHPで問題があります。最後に同じ行のクラスメソッドを複数回呼び出すにはどうすればいいですか?

$foo = $wke->template->notify() 
        ->type("ERROR") 
        ->errno("0x14") 
        ->msg("You are not logged.") 
        ->page("login.tpl"); 

、私は私の$foo変数は、この戻ります必要があります: は私のPHPファイルでは、私は次の行を作成し

$foo->type = "ERROR" 
$foo->errno= "0x14" 
$foo->msg= "You are not logged." 
$foo->page= "login.tpl" 

を私は呼び出す必要がある場所$wke->templateがあることに注意してくださいnotify()要素。

+2

であり、この

class Wke { public $type; public $errno; public $msg; public $page; public $template = $this; public function notify(){ return $this; } public function errorno($error){ $this->errno = $error; return $this; // returning same object so you can call the another function in sequence by just -> } public function type($type){ $this->type = $type; return $this; } public function msg($msg){ $this->msg = $msg; return $this; } public function page($page){ $this->page = $page; return $this; } } 

取得します。あなたの元の意図を言葉だけで説明してください。 – zerkms

+0

なぜあなたは1行でそれをすることを主張しますか?あなたは別の呼び出しでそれを行う必要があります! – alfasin

+0

お返事ありがとうございます。私は必要なすべての情報を持つ変数を作成するメソッドを作成する必要があります。私は、特定のことをするために呼び出されるすべてのメソッドをカスタマイズし、同時に、必要なすべての情報を返す必要があります。 – DrSAS

答えて

30

クラスの同じオブジェクトを返す関数なので、 " - >"だけでクラスの関数を1つずつ呼び出す方法です。以下の例を参照してください。あなたは、全体の魔法の質問が明確ではないreturn $this;

+0

これはうまくいきました!ありがとうございました! – DrSAS

+0

投票してください。 –

+0

私は今のところできません。私は投票に値する権利がありません(十分な評判がない): – DrSAS

1

これらのメソッドのそれぞれは、引数として設定したものを格納するオブジェクトを返す必要があります。おそらく、それはそれぞれのオブジェクトプロパティを含むtemplateであり、メソッドを呼び出すと、対応する変数が設定され、自身を返します。

関連する問題