【发布时间】:2021-12-22 16:10:19
【问题描述】:
假设你有这样一个类:
class Foo
{
// maybe private or protected?
public Pages $pages;
public Owners $owners;
// ...
}
如何实现以链式方式接受闭包的方法?链中的每个方法调用都应该更新内部类属性(因此它们使用的是最新的)。
用法示例:
$pagesArray = Foo::wherePage('page', function ($page, $owners) {
// do something with the given page, owners is optional
})->b(function ($owners) {
// now do something with owners, e.g. $owners->foo();
})->getPagesArray();
或者
$pagesArray = Foo::pages(function ($pages, $owners) {
// loop pages, owners is optional
})->b(function ($owners) {
// now do something with owners, e.g. $owners->foo();
})->getPagesArray();
谢谢!
【问题讨论】:
-
什么不起作用?是“连锁时尚”的一部分吗?你能证明你的
wherePage()或pages()的实现不起作用吗?
标签: php architecture closures