Desempenho de foreach, array_map com lambda e array_map com função estática
Qual é a diferença de desempenho (se houver) entre essas três abordagens, ambas usadas para transformar uma matriz em outra matriz?
Usandoforeach
Usandoarray_map
com função lambda / fechamentoUsandoarray_map
com função / método 'estático'Existe alguma outra abordagem?Para deixar claro, vamos dar uma olhada nos exemplos, todos fazendo o mesmo - multiplicando a matriz de números por 10:
$numbers = range(0, 1000);
Para cada
$result = array();
foreach ($numbers as $number) {
$result[] = $number * 10;
}
return $result;
Mapa com lambda
return array_map(function($number) {
return $number * 10;
}, $numbers);
Mapa com função 'static', passado como referência de string
function tenTimes($number) {
return $number * 10;
}
return array_map('tenTimes', $numbers);
Existe alguma outra abordagem? Eu ficarei feliz em ouvir realmentetodos diferenças entre os casos de cima, e quaisquer insumos porque um deve ser usado em vez de outros.