Производительность foreach, array_map с lambda и array_map со статической функцией
Какая разница в производительности (если есть) между этими тремя подходами, которые используются для преобразования массива в другой массив?
С помощьюforeach
С помощьюarray_map
с лямбда / функцией закрытияС помощьюarray_map
со «статической» функцией / методомЕсть ли другой подход?Чтобы прояснить ситуацию, давайте посмотрим на примеры, все они делают одно и то же - умножая массив чисел на 10:
$numbers = range(0, 1000);
Для каждого
$result = array();
foreach ($numbers as $number) {
$result[] = $number * 10;
}
return $result;
Карта с лямбдой
return array_map(function($number) {
return $number * 10;
}, $numbers);
Карта со статической функцией, переданная как строковая ссылка
function tenTimes($number) {
return $number * 10;
}
return array_map('tenTimes', $numbers);
Есть ли другой подход? Я буду рад услышать на самом делевсе различия между приведенными выше случаями и любые входные данные, почему один должен использоваться вместо других.