Foros del Web » Programando para Internet » PHP »

¿Paso por referencia en PHP?

Estas en el tema de ¿Paso por referencia en PHP? en el foro de PHP en Foros del Web. Hice una función para no tener que repetir un switch dos veces en otra función y para ello necesito pasarle los parámetros por referencia, sin ...
  #1 (permalink)  
Antiguo 13/09/2005, 10:21
 
Fecha de Ingreso: septiembre-2005
Mensajes: 20
Antigüedad: 18 años, 7 meses
Puntos: 0
¿Paso por referencia en PHP?

Hice una función para no tener que repetir un switch dos veces en otra función y para ello necesito pasarle los parámetros por referencia, sin embargo al hacerlo, he obtenido el siguiente error:

Cita:
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of funcionSwitch(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer.
Sino entiendo mal, eso significa que ya no se puede pasar por referencia en PHP 5, por lo tanto, mi pregunta es la siguiente ¿que alternativas hay al paso por referencia para este tipo de cosas (es decir, cuando necesitas que la función devuelva los valores cambiados)?

Saludos
  #2 (permalink)  
Antiguo 13/09/2005, 10:31
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Dice que se ha dejado de usar tal cosa, pero que aun puede activarse cambiando en php.ini, colocando allow_call_time_pass_reference=true y que en el futuro quiza no se use mas.
En otro caso, siempre se ha pido hacer esto:

$a=0
$a=nuevo_valor($a);
  #3 (permalink)  
Antiguo 13/09/2005, 10:37
 
Fecha de Ingreso: septiembre-2005
Mensajes: 20
Antigüedad: 18 años, 7 meses
Puntos: 0
Ya, lo del PHP.ini ya lo había entendido, pero claro, prefiería alguna alternativa mejor que esa que ya no va a estar soportada.

Probaré con eso que dices.

Saludos
  #4 (permalink)  
Antiguo 13/09/2005, 11:05
Avatar de Vaalegk  
Fecha de Ingreso: abril-2005
Mensajes: 154
Antigüedad: 19 años
Puntos: 2
supongo que estas usando PHP5 por lo cual en el paso de valores a funciones por referencia no lo debes hacer al llamar la funcion sino cuando la declaras, ejem:
si tu funcion era:
function funcionSwitch($argumentos){
}
y la llamabas
funcionSwitch(&$arrgumentos);

/**------------------------***/

debes ponerla

function funcionSwitch(&$argumentos){
}

y la llamas

funcionSwitch($argumentos);

en PHP5 el paso de valores por referencia es declarado en la funcion y no a la hora de llamarlo, la unica desventaja de usar esta nueva caracteristica es que tu script no serra compatible con PHP4(donde el comportamiento era como lo hiciste).

espero que haberte ayudado.
  #5 (permalink)  
Antiguo 13/09/2005, 13:22
 
Fecha de Ingreso: septiembre-2005
Mensajes: 20
Antigüedad: 18 años, 7 meses
Puntos: 0
Perfecto, ya no me da el error, gracias.

Ya me extrañaba a mi que el PHP no soportase el paso de parámetros por referencia.
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 23:43.