Skip to main content
 首页 » 编程设计

php之PHP 中 Python 的 Lambda 等价物

2024年10月25日25EasonJim

我正在尝试在 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]