13

PHPに問題があります。私のphpファイルで、次の行を作成しました。

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

最後に、$foo変数がこれを返す必要があります:

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

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

4

2 に答える 2

33

クラスの同じオブジェクトを返す関数なので、「->」だけでクラスの関数を1つずつ呼び出す方法。以下の例を参照してください。あなたはこれを手に入れるでしょう

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;
    }
}

全体の魔法はreturn $this;

于 2012-07-19T04:02:36.890 に答える
1

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

于 2012-07-19T02:38:26.560 に答える