Estuve probando algunos ejemplos que se proponen en un artículo de
www.desarrolloweb.com para el paso de parámetros, y me asalta una duda. Siendo bien preciso y simplista, se supone que pasando los parámetros por valor, el valor del parámetro no cambia cuando se llama a la función. En cambio, si pasamos los parámetros por referencia, el valor sí debería cambiar. Es decir (al modo como lo entiendo yo), cuando se pasa por valor, la función devuelve la $variable contenida dentro de la misma; y cuando se pasa por referencia, devuelve la $variable que está fuera de la función.
Pero resulta que, viendo los ejemplos del artículo, el resultado es el mismo tanto si se pasan los parámetros por valor o por referencia. Me explico con los siguientes códigos:
PARÁMETROS POR VALOR:
Código PHP:
Ver originalfunction prueba1($variable_interna) {
$variable_interna="Variable dentro de la función";
return $variable_interna;
}
$variable_externa="Variable fuera de la función";
echo "<p>resultado= ".prueba1($variable_externa)."</p>";
PARÁMETROS POR REFERENCIA:
Código PHP:
Ver originalfunction prueba2(&$otra_variable_interna) {
$otra_variable_interna="Variable dentro de la función";
return $otra_variable_interna;
}
$otra_variable_externa="Variable fuera de la función";
echo "<p>resultado= ".prueba2($otra_variable_externa)."</p>";
Tanto el primer como el segundo ejemplo devuelven la variable contenida dentro de la función, siendo que los parámetros de ambas son pasadas de diferentes maneras.
¿Cuál entonces es el sentido de usar una u otra forma (por valor o por referencia) si ambas devuelven la variable contenida dentro de la función?
Seguramente algo se me escapa; puede que esté equivocado y no haya entendido bien el asunto. Quisiera me ayuden a entenderlo, por favor.