我有这堂课:
class myClass
{
function A() {
$x = "Something ";
return $x;
}
function B() {
return "Strange";
}
}
但是我想这样调用函数:
myClass()->A()->B();
如果不返回类本身,我怎么能这样做(返回$ this)?
答案 0 :(得分: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();