Rendimiento de foreach, array_map con lambda y array_map con función estática

¿Cuál es la diferencia de rendimiento (si existe) entre estos tres enfoques, ambos utilizados para transformar una matriz en otra matriz?

UtilizandoforeachUtilizandoarray_map con función lambda / cierreUtilizandoarray_map con función / método 'estático'¿Hay algún otro enfoque?

Para aclararme, veamos los ejemplos, todos haciendo lo mismo, multiplicando la matriz de números por 10:

$numbers = range(0, 1000);

Para cada

$result = array();
foreach ($numbers as $number) {
    $result[] = $number * 10;
}
return $result;

Mapa con lambda

return array_map(function($number) {
    return $number * 10;
}, $numbers);

Mapa con función 'estática', pasada como referencia de cadena

function tenTimes($number) {
    return $number * 10;
}
return array_map('tenTimes', $numbers);

¿Hay algún otro enfoque? Estaré feliz de escuchar en realidadtodos diferencias entre los casos anteriores y cualquier entrada por la que se debe utilizar uno en lugar de otros.

Respuestas a la pregunta(3)

Su respuesta a la pregunta