Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/03/2011, 18:52
novoweb
 
Fecha de Ingreso: abril-2010
Ubicación: Calama
Mensajes: 58
Antigüedad: 14 años
Puntos: 0
Pregunta Dudas sobre parámetros de funciones

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 original
  1. function prueba1($variable_interna) {
  2.     $variable_interna="Variable dentro de la función";
  3.     return $variable_interna;
  4. }
  5. $variable_externa="Variable fuera de la función";
  6. echo "<p>resultado= ".prueba1($variable_externa)."</p>";


PARÁMETROS POR REFERENCIA:

Código PHP:
Ver original
  1. function prueba2(&$otra_variable_interna)   {
  2.     $otra_variable_interna="Variable dentro de la función";
  3.     return $otra_variable_interna;
  4. }
  5. $otra_variable_externa="Variable fuera de la función";
  6. 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.