PHPRO.ORG

The subject of a variable number of arguements passed to a function pops up quite often. Here we show how easy this is with func_num_args().


<?php
function foo(){
  
$numargs func_num_args();
  echo 
"Number of arguments: $numargs";
}

foo('arg1''arg2''arg3'45);
?>

As you can see when you run this code it will print out
Number of arguments: 5
To get the arguements you can simply use func_get_args(). Lets modify our code a little to see how this works..


<?php
/**
*
* A function with variable args
*
*/
function foo(){
  
/*** get the number of args into a variable ***/
  
$numargs func_num_args();
  
/*** echo the number of args ***/
  
echo "Number of arguments: $numargs<br />";

  
/*** put the args into an array ***/
  
$arg_list func_get_args();

  
/*** create an array object ***/
  
$arrayObj = new ArrayObject($arg_list);

  
/*** iterate over the array ***/
  
for($iterator $arrayObj->getIterator();
  
/***  check if valid ***/
  
$iterator->valid();
  
/***  move to the next array member ***/
  
$iterator->next())
    {
    
/*** output the key and current array value ***/
    
echo $iterator->key() . ' => ' $iterator->current() . '<br />';
    }
 }

/*** call the foo function with a variable number of args ***/
foo('arg1''arg2''arg3'45);
?>

The code above should give you something like ..
Number of arguments: 5
0 => arg1
1 => arg2
2 => arg3
3 => 4
4 => 5