Me pregunto si es una buena práctica pasar por referencia cuando solo está leyendo una variable, o si siempre debe pasarse como un valor.Cuándo pasar por referencia en PHP
Ejemplo con pase por referencia:
$a = 'fish and chips';
$b = do_my_hash($a);
echo $b;
function &do_my_hash(&$value){
return md5($value);
}
Ejemplo con pase por valor:
$a = 'fish and chips';
$b = do_my_hash($a);
echo $b;
function do_my_hash($value){
return md5($value);
}
que es mejor? Por ejemplo, si tuviera que ejecutar un ciclo con 1000 rondas?
Ejemplo de bucle:
for($i = 0 ; $i < 1000 ; $i++){
$a = 'Fish & Chips '.$i;
echo do_my_hash($a);
}
Estaba pensando en la eficiencia. Como la función no cambia el parámetro, sería mejor pasar por referencia, ya que no necesita copiar el valor. Si el $ a = "bla bla bla ... [texto con 10.000 caracteres ...]"; ... 10.000 caracteres requerirían mucha memoria, así que en lugar de copiarlos, envíelos por referencia ... –
Lo usaría muy poco, y solo si tiene la intención de devolverle un valor similar al que me entregó. Crear un hash md5 de algo lo está cambiando por completo, por lo que no querrá pasar por referencia. –
En este caso, el artículo al que me he vinculado es algo que debería leer de forma inmediata ;-) ;; la oración que cité, por supuesto, y hay una explicación justo después de * (que no cité) * ;; PHP no es C, por ejemplo ^^ –