我在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()
元素的地方。
答案 0 :(得分:32)
通过“ - >”逐个调用类的功能的方法因为函数返回类的同一个对象。请参阅下面的示例。你会得到这个
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;
答案 1 :(得分:1)
这些方法中的每一个都需要返回一些对象,该对象存储您在其中设置的参数。据推测,它将包含template
上的每个对象属性,当您调用该方法时,它会设置相应的变量并返回自身。