gpt4 book ai didi

php - 记忆 PHP 上的链式方法

转载 作者:行者123 更新时间:2023-12-04 02:39:25 26 4
gpt4 key购买 nike

我调用一个返回给定特定链式方法的数组的对象:

Songs::duration('>', 2)->artist('Unknown')->genre('Metal')->stars(5)->getAllAsArray();

问题在于每次我想获取这个数组时,例如,在另一个脚本中,我必须再次链接所有内容。现在想象一下,在 10 多个脚本中。

有没有办法召回链接的方法供以后使用?

最佳答案

由于无法缓存结果,因此可以将调用链的结构缓存在数组中。

$chain = [
'duration' => ['>', 2],
'artist' => 'Unknown',
'genre' => 'Metal',
'stars' => 5,
'getAllAsArray' => null
];

您可以将其与使用缓存数组模拟链式调用的函数一起使用:

function callChain($object, $chain) {
foreach ($chain as $method => $params) {
$params = is_array($params) ? $params : (array) $params;
$object = call_user_func_array([$object, $method], $params);
}
return $object;
}

$result = callChain('Songs', $chain);

关于php - 记忆 PHP 上的链式方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38338946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com