Производительность foreach, array_map с лямбда-выражением и array_map со статической функциейPhp

Кемеровские программисты php общаются здесь
Anonymous
Производительность foreach, array_map с лямбда-выражением и array_map со статической функцией

Сообщение Anonymous »

Какова разница в производительности (если она есть) между этими тремя подходами, которые оба используются для преобразования массива в другой массив?
  • Использование foreach
  • Использование array_map с лямбда-функцией/замыканием
  • Использование array_map со «статической» функцией /method
  • Есть ли другой подход?
Чтобы внести ясность, давайте посмотрим в примерах все делаем одно и то же - умножаем массив чисел на 10:

Код: Выделить всё

$numbers = range(0, 1000);


Foreach

Код: Выделить всё

$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);


Есть ли другой подход? Я буду рад услышать фактически все различия между приведенными выше случаями и любые аргументы, почему следует использовать один из них вместо других.

Подробнее здесь: https://stackoverflow.com/questions/181 ... c-function

Вернуться в «Php»