Foros del Web » Programando para Internet » PHP »

Pasar parámeros dinámicos desde array a una función

Estas en el tema de Pasar parámeros dinámicos desde array a una función en el foro de PHP en Foros del Web. No se si se puede hacer esto de alguna manera. Tengo varias funciones. El nombre la función a la que quiero invocar la guardo en ...
  #1 (permalink)  
Antiguo 04/05/2010, 09:55
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Pasar parámeros dinámicos desde array a una función

No se si se puede hacer esto de alguna manera.

Tengo varias funciones. El nombre la función a la que quiero invocar la guardo en $solicitud.

Tengo un array con parámetros para pasar a la función que haya en $solicitud.

El array de parámetros siempre se carga con el número de parámetros exactos dependiendo de la solicitud que se quiera.

Cómo puedo pasar los parámetros que tengo en el array dinámicamente a la función?

Ej:

Código PHP:

$solicitud 
'funcionA';

$array_parametros=array('parametro1''parametro2');

funcionA(parametro1parametro2){}

funcionB(parametro1parametro2parametro3parametro4){}

//Invocar la funcion
{$solicitud}(..../* aquí quiero insertar los parámetros dinamicamente */...) 
No se si me explicado lo suficientemente bien.
  #2 (permalink)  
Antiguo 04/05/2010, 10:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Pasar parámeros dinámicos desde array a una función

Para evitar que tengas que declarar algún nombre a una función puedes usar las funciones anónimas (PHP 5.3.x en adelante) y/o create_function.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 04/05/2010, 10:21
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Pasar parámeros dinámicos desde array a una función

Para usar los elementos de un array como parametros para una función puedes usar call_user_func_array().

http://es.php.net/manual/en/function.call-user-func-array.php
  #4 (permalink)  
Antiguo 04/05/2010, 10:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Pasar parámeros dinámicos desde array a una función

O call_user_func que es lo más adecuado a lo que necesitas.

Saludos.
  #5 (permalink)  
Antiguo 04/05/2010, 10:24
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Pasar parámeros dinámicos desde array a una función

Ejemplo de lo que te quiero decir
[PHP >= 5.3]
Código PHP:
Ver original
  1. <?php
  2. $foo = function(){
  3. };
  4. $foo(1, 2, 3, 4);
[PHP < 5.3]
Código PHP:
Ver original
  1. <?php
  2. $foo = create_function('$bar','var_dump(func_get_args());');
  3. $foo(1, 2, 3, 4);
Edito:
Al parecer se me adelantaron en darte otras respuestas
En todo caso debe ser call_user_func_array
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 04/05/2010 a las 10:35
  #6 (permalink)  
Antiguo 04/05/2010, 11:21
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Pasar parámeros dinámicos desde array a una función

Vale vale, ya me imaginaba que no era tan excepcional lo que quiero hacer. Echaré un vistazo a todo esto.

La idea es aplicarlo a métodos de objetos, pero supongo que no habrá problemas no?

Gracias.

Última edición por cluster28; 04/05/2010 a las 11:30
  #7 (permalink)  
Antiguo 05/05/2010, 01:13
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Pasar parámeros dinámicos desde array a una función

En objetos funciona de esta manera:

call_user_func_array(array($objeto, $metodo), $array_parametros);

Última edición por cluster28; 05/05/2010 a las 01:25

Etiquetas: pasar
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 18:18.