PHP OOP:可链接对象?

发布于 2024-09-03 00:13:00 字数 323 浏览 11 评论 0原文

我试图找到关于 PHP 中可链接 OOP 对象的很好的介绍,但还没有任何好的结果。

这样的事怎么办呢?

$this->className->add('1','value');
$this->className->type('string');
$this->classname->doStuff();

甚至: $this->className->add('1','value')->type('string')->doStuff();

非常感谢!

I have tried to find a good introduction on chainable OOP objects in PHP, but without any good result yet.

How can something like this be done?

$this->className->add('1','value');
$this->className->type('string');
$this->classname->doStuff();

Or even: $this->className->add('1','value')->type('string')->doStuff();

Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

若水般的淡然安静女子 2024-09-10 00:13:00

关键是在每个方法中返回对象本身:

class Foo {
    function add($arg1, $arg2) {
        // …
        return $this;
    }
    function type($arg1) {
        // …
        return $this;
    }
    function doStuff() {
        // …
        return $this;
    }
}

每个返回对象本身的方法都可以用作方法链中的中间体。有关更多详细信息,请参阅维基百科关于方法链的文章

The key is to return the object itself within each method:

class Foo {
    function add($arg1, $arg2) {
        // …
        return $this;
    }
    function type($arg1) {
        // …
        return $this;
    }
    function doStuff() {
        // …
        return $this;
    }
}

Every method, that returns the object itself, can be used as an intermediate in a method chain. See Wikipedia’s article on Method chaining for some further details.

2024-09-10 00:13:00

只需在 add() 和 type() 方法中返回 $this 即可:

function add() {
    // other code
    return $this;
}

just return $this in the add() and type() methods:

function add() {
    // other code
    return $this;
}
荆棘i 2024-09-10 00:13:00

另一个术语是Fluent Interface

Another term for this is the Fluent Interface

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文