这三种方法之间的性能差异(如果有的话)是什么,都用于将数组转换为另一个数组?
foreacharray_maplambda/closure函数array_map'静态'功能/方法为了使自己清楚,让我们看看这些例子,都做同样的事情 - 将数字数组乘以10:
$numbers = range(0, 1000);
Run Code Online (Sandbox Code Playgroud)
的foreach
$result = array();
foreach ($numbers as $number) {
$result[] = $number * 10;
}
return $result;
Run Code Online (Sandbox Code Playgroud)
用lambda映射
return array_map(function($number) {
return $number * 10;
}, $numbers);
Run Code Online (Sandbox Code Playgroud)
使用'static'函数映射,作为字符串引用传递
function tenTimes($number) {
return $number * 10;
}
return array_map('tenTimes', $numbers);
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?我将很高兴听到上述案例之间的所有差异,以及为什么应该使用其他人而不是其他人的任何输入.