我怎样才能进行其他方法(如Laravel),在链接中扩展?
例如:
$page->loadFooter()->withExtension("script_name")
其中withExtension()
是其他方法,会影响loadFooter()
方法的结果吗?
答案 0 :(得分:1)
方法链的工作方式是每个调用都必须返回对象本身(即$this
)。
所以你的页面类定义如下:
class Page {
public function loadFooter() {
/* ... */
return $this;
}
public function withExtension($script) {
/* ... */
return $this;
}
}
方法链中实际发生的是在返回的对象上调用下一个函数。
答案 1 :(得分:0)
withExtension
只需要返回一个具有$page
方法的对象。因此,如果您希望影响loadFooter
对象,则/*Within $page's class*/
public function loadFooter(){
/**insert Code**/
return $this;
}
应返回其对象。
TfsTeamProjectCollection teamProjectCollection = configServer.GetTeamProjectCollection(collectionId);
teamProjectCollection.EnsureAuthenticated;
答案 2 :(得分:0)
在您的函数中,您返回一个对象,通常为$this
class Page {
public $footer;
public function loadFooter() {
$this->footer = file_get_contents("footer.html");
return $this;
}
public function withExtension($script) {
$this->footer = str_replace($this->footer, "</body>", "<script src='{$script}'></script></body>");
}
}
$page = new Page();
$page->loadFooter()->withExtension("script name");