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?

UsandoforeachUsandoarray_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.

questionAnswers(3)

yourAnswerToTheQuestion