Foros del Web » Programando para Internet » PHP »

¿Ventajas/inconvenientes del paso por referencia?

Estas en el tema de ¿Ventajas/inconvenientes del paso por referencia? en el foro de PHP en Foros del Web. Hola amigos: En unos scripts que tengo, donde hay llamadas a librerías creadas por mí con un montón de funciones, no he metido nada de ...
  #1 (permalink)  
Antiguo 13/03/2012, 09:23
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
¿Ventajas/inconvenientes del paso por referencia?

Hola amigos:

En unos scripts que tengo, donde hay llamadas a librerías creadas por mí con un montón de funciones, no he metido nada de "paso por referencia" en los parámetros ni en las funciones, es decir, todo lo hago "por valor".

Todo me funciona ok, pero me he planteado empezar a poner los parámetros "por referencia". ¿Cuáles son las ventajas o desventajas de poner por valor o por referencia? Lo digo porque como todo me funciona bien tal y como lo tengo, no sé qué podría aportarme hacer el cambio...

¡Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 13/03/2012, 10:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: ¿Ventajas/inconvenientes del paso por referencia?

rendimiento, básicamente al pasar un valor por referencia se pasa el puntero del valor y no se copia el valor, esto no aplica en objetos debido a que siempre es pasado su puntero, a no ser que clones manualmente la instancia
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 13/03/2012, 10:29
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: ¿Ventajas/inconvenientes del paso por referencia?

OK maycolalvarez, muchas gracias.

O sea que sí sería conveniente que pusiera todo por referencia. Ahora bien, ¿esto afectará a los scripts que tengo y a los valores que devuelven, etc? ¿O tendré que ir comprobando en cada sitio que todo funciona bien tras haber puesto los parámetros por referencia? ¿Puedo ir poniendo a todos los parámetros de las funciones de mis scripts el "&" por delante sin que pase nada? ¿Con este cambio añadido, sin nada más, ya gano en rendimiento?

Siento tanta pregunta (que en realidad es casi la misma)...
  #4 (permalink)  
Antiguo 13/03/2012, 10:47
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: ¿Ventajas/inconvenientes del paso por referencia?

En el mismo manual dicen que no es necesario usar las referencias (sólo en algunos casos) y hay que tener mucho cuidado cuando se usan. Ya las estás usando en muchas partes sin darte cuenta (variables globales, objetos etc...).

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 13/03/2012, 10:51
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: ¿Ventajas/inconvenientes del paso por referencia?

Cita:
Iniciado por andresdzphp Ver Mensaje
En el mismo manual dicen que no es necesario usar las referencias (sólo en algunos casos) y hay que tener mucho cuidado cuando se usan. Ya las estás usando en muchas partes sin darte cuenta (variables globales, objetos etc...).
Pero yo no uso objetos en mis scripts (salvo con un par de clases que me hacen falta -PHPMailer y ezPDF) y mi versión de PHP es la 4.3.9 (lo sé, viejita, pero es la que hay...). Aun así, ¿no haría falta el paso por referencia?
  #6 (permalink)  
Antiguo 13/03/2012, 10:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ¿Ventajas/inconvenientes del paso por referencia?

Pues si estas usando una versión tan anterior de PHP, sí tienes que especificar que la variable es por referencia usando &, y también los objetos en ese caso no se pasan por referencia, si no por valor, tienes que usar &= para devolver la referencia del objeto.

Saludos.
  #7 (permalink)  
Antiguo 13/03/2012, 11:26
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: ¿Ventajas/inconvenientes del paso por referencia?

Gracias! pero a la hora de "actualizar" los parámetros (poniéndolos por referencia), ¿no afectará al funcionamiento actual? funcionará todo tal cual está o deberé ir comprobando script tras script que todo va bien?
  #8 (permalink)  
Antiguo 13/03/2012, 12:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ¿Ventajas/inconvenientes del paso por referencia?

Obviamente vas a tener que ir comparando, cambiando y probando, ya que no solo es agregar el & a cada variable, también tienes que cambiar el funcionamiento de tus funciones.

Saludos.
  #9 (permalink)  
Antiguo 14/03/2012, 03:54
 
Fecha de Ingreso: septiembre-2003
Mensajes: 337
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: ¿Ventajas/inconvenientes del paso por referencia?

Cita:
Iniciado por GatorV Ver Mensaje
Obviamente vas a tener que ir comparando, cambiando y probando, ya que no solo es agregar el & a cada variable, también tienes que cambiar el funcionamiento de tus funciones.
OK pues muchas gracias... en ese caso tengo mucho trabajo por delante si quiero cambiar a pasar por referencia (son muchas funciones las que tengo), así que ya veré qué hago :s

Lo dicho, muchas gracias!!

Etiquetas: paso
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:39.