这是什么 PHP 语法?
我最近看到了一些看起来像这样的示例 PHP 代码:
I recently saw some sample PHP code that looked like this:
$myObj->propertyOne = 'Foo'
->propertyTwo = 'Bar'
->MethodA('blah');
相对于:
$myObj->propertyOne = 'Foo';
$myObj->propertyTwo = 'Bar';
$myObj->MethodA('blah');
这是来自特定框架还是特定版本的 PHP,因为我从未见过它工作?
Is this from a particular framework or a particular version of PHP because I have never seen it work?
推荐答案
你看到的是fluent interface
,但是你的代码示例是错误的.长话短说,fluent setter
应该返回 $this
:
What you saw was fluent interface
, however your code sample is wrong. To make long story short, fluent setter
should return $this
:
class TestClass {
private $something;
private $somethingElse;
public function setSomething($sth) {
$this->something = $sth;
return $this;
}
public function setSomethingElse($sth) {
$this->somethingElse = $sth;
return $this;
}
}
用法:
$sth = new TestClass();
$sth->setSomething(1)
->setSomethingElse(2);
相关文章