我正在尝试在 PHP 中复制这段代码:
pool = ThreadPool(num_parts)
pool.map(
lambda f: migrate(client, user_id=user_id, files=f), all_files)
在 PHP 中调用函数时迭代数组的等效结构是什么? 在 PHP 的多线程上下文中使用它的双倍奖励积分:)
请您参考如下方法:
在 Python 中,lambda 在运行时创建一个匿名函数。
说:
def f(x):
return x * 2
或者:
f = lambda x: x * 2
都将创建一个返回 x 2 次的函数 f,除了 lambda 可以创建一个匿名函数,该函数可以分配给一个变量或作为参数传递而不给出名称。
在 PHP 中可以像这样实现类似的效果:
$f = function ($x) { return $x * 2; }
现在变量 $f 包含一个函数,可以用作 $f(value)。
与在 Python 中一样,您可以直接将此匿名函数创建为参数,而无需将其分配给变量或为其命名。示例:
$arr = [1, 2, 3, 4, 5];
$arr = array_map(function ($x) { return $x * 2; }, $arr);
// $arr is now [2, 4, 6, 8, 10]
