Foros del Web » Programando para Internet » PHP »

Pasar un array a una funcion

Estas en el tema de Pasar un array a una funcion en el foro de PHP en Foros del Web. Hola a todos no si hay alguna forma de pasar un array como argumentos de una funcion es decir algo($uno,$dos,$tres...); y en ves de eso ...
  #1 (permalink)  
Antiguo 11/03/2009, 13:16
Avatar de poloche  
Fecha de Ingreso: abril-2006
Ubicación: cochabamba
Mensajes: 93
Antigüedad: 18 años
Puntos: 1
Mensaje Pasar un array a una funcion

Hola a todos no si hay alguna forma de pasar un array como argumentos de una funcion es decir

algo($uno,$dos,$tres...);
y en ves de eso hacer
vars[]=$uno;$vars[]=dos;$var[]=tres;......
algo(vars)

he visto la funcion
$argc = $func_num_args();

$argv = $func_get_args();

pero estas sirven para recuperar los parametros que se han enviado o acaso me equivoco?
plis si alguien sabe como podria hacerlo le estare agradecido
__________________
no estare lejos, por que siempre estare junto a ti
  #2 (permalink)  
Antiguo 11/03/2009, 13:32
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: Pasar un array a una funcion

Simplemente puedes construir el array antes de enviarlo o bien puedes enviarlo directamente definiendo que lo que envías es un array.

Primera forma:
Código PHP:
$var = array('uno','dos','tres');

algo($var); 
Segunda forma
Código PHP:
algo(array('uno','dos','tres')); 

Obviamente, la función necesitará de código para manejar el array pasado como parámetro.
__________________
Usuario Reigistrado de linux #399288
  #3 (permalink)  
Antiguo 11/03/2009, 17:10
Avatar de poloche  
Fecha de Ingreso: abril-2006
Ubicación: cochabamba
Mensajes: 93
Antigüedad: 18 años
Puntos: 1
Mensaje Respuesta: Pasar un array a una funcion

ummmmm no. lo que pasa es que cuando yo defino una funcion

Código PHP:
funcion algo(){
  
$argv func_get_args();
 foreach(
$argv as $arg){
  echo 
$arg;
 }

pero como le paso los parametros ?
me habia creado un array lo pase como parametro como lo explicas pero simplemente no lo toma encuenta, a esta funcion hay que pasarle parametros de la siguiente forma

Código PHP:
algo($arg1$arg2$arg.....) 
si si yo le paso el array simplemente no lo toma encuenta por que en su definicion no recibe ningun array ahora me dejo entender?
__________________
no estare lejos, por que siempre estare junto a ti
  #4 (permalink)  
Antiguo 11/03/2009, 21:20
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: Pasar un array a una funcion

Realmente no, no queda muy claro lo que quieres aunque pareciera que no estás definiendo realmente la función de la forma necesaria para aceptar parámetros sin necesidad de usar func_get_args.

Me explico, el código colocas define la función de esta forma:
Código PHP:
funcion algo () {
// código 

func_get_args para tal definición es la única forma de sacar los parámetros pasados, sin embargo, lo que yo mencioné en mi respuesta anterior es asumiendo que habías definido la función de esta forma:
Código PHP:
funcion algo ($parametros) {
// código

Al declarar la función, según el ejemplo anterior, se estaría indicando que la función espera recibir 1 parámetro, en este caso, bien podría ser un array o una cadena o entero, etc..

Una forma en que se usaría tal estructura sería:
Código PHP:
function algo($param) {

    foreach (
$param as $valor) {
        echo 
$valor;
    }
}

$var = array('uno','dos','tres');

algo($var); 
Podría evitar el array y pasar los parámetros por separado:
Código PHP:
function algo($param1$param2$param3) {

    echo 
$param1;
    echo 
$param2;
    echo 
$param3;
}

algo('uno','dos','tres'); 
En ninguno de esos dos últimos ejemplos fue necesario usar func_get_args y además, claramente contesta la pregunta inicial que es cómo pasar un array a la función.

Me parece (corrígeme si no es así) que en tu caso probaste enviar el array pero sin definir en la función que debera recibir parámetros, algo como esto:
Código PHP:
function algo() {
   
$args func_get_args();
....
}

$vars = array('uno','dos','tres');

algo($vars); 
En dicho caso, es innecesario pasar un array como parámetro ya que func_get_args creará de por si un array los parámetros que se le pasen a la función.
__________________
Usuario Reigistrado de linux #399288
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 04:09.