【发布时间】:2015-05-15 14:08:17
【问题描述】:
我使用 PHP(与 KirbyCMS)并且可以创建此代码:
$results = $site->filterBy('a_key', 'a_value')->filterBy('a_key2', 'a_value2');
这是一个包含两个filterBy 的链。它有效。
但是我需要动态构建这样的函数调用。有时可能是两个链式函数调用,有时是三个或更多。
这是怎么做到的?
也许你可以试试这段代码?
链只是一个随机数,可用于创建 1-5 条链。
for( $i = 0; $i < 10; $i ++ ) {
$chains = rand(1, 5);
}
预期结果示例
示例一,只有一个函数调用
$results = $site->filterBy('a_key', 'a_value');
例子二,很多嵌套函数调用
$results = $site->filterBy('a_key', 'a_value')->filterBy('a_key2', 'a_value2')->filterBy('a_key3', 'a_value3')->filterBy('a_key4', 'a_value4')->filterBy('a_key5', 'a_value5')->filterBy('a_key6', 'a_value6');
【问题讨论】:
-
你能用你的代码展示一个期望输出的例子吗?
-
所以如果我理解它,你想多次使用 filterBy 函数来链接价值?因此,如果您将拥有链 4,您想使用 filterBy 4 次?每次都有参数 "a_key" 。 ($chain - 1)?
-
对 Kirby 不太熟悉,但是将一个数组传递给
filterBy()而不是将其链接六次不是更有意义吗? -
你不能用纯函数做到这一点,但你可以用方法,只要确保每个调用都返回
$this -
@JensTörnell 我可以,但会重复 :)
标签: php function object dynamically-generated kirby