Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/08/2010, 03:50
beni0888
 
Fecha de Ingreso: octubre-2008
Ubicación: Plasencia
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: Pasar argumento por referencia a una función con número de argumentos vari

Cita:
Iniciado por DeFFeR Ver Mensaje
Buenas,
No se si te he entendido bien, asi que ahí vá...


Creo que podrias utilizar func_get_args() y compaginarlo con func_num_args()

Código PHP:
Ver original
  1. function loquesea ($hola,$mundo)
  2. {
  3.     $num_parametros = func_num_args(); //En este ejemplo nos devuelve 5
  4.     $parametros = func_get_args();
  5.     for ($i = 0; $i < $num_parametros; $i++) {
  6.         echo $parametros[$i].'&nbsp;';
  7.     }
  8. }
  9.  
  10. loquesea('hola','mundo','enviado','por','pepe');

Saludos,
lo que dices sirve para acceder a los paramestros, mostrarlos y modificarlos dentro del ámbito de la función si es necesario, pero no te permite modificarlos y que dicho cambio se mantenga fuera del ámbito de la función, para ello la única manera que encontrado hasta ahora es anteponer el símbolo & delante de cada parametro en la llamada a la función, pero esto lanza el siguiente error en PHP5:

Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of prueba(). 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.