search for in the  
<func_get_argsfunction_exists>
Last updated: Thu, 19 May 2005

func_num_args

(PHP 4, PHP 5)

func_num_args --  Returns the number of arguments passed to the function

Description

int func_num_args ( void )

Returns the number of arguments passed into the current user-defined function. func_num_args() will generate a warning if called from outside of a user-defined function. This function cannot be used directly as a function parameter. Instead, its result may be assigned to a variable, which can then be passed to the function.

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

foo(1, 2, 3);    // Prints 'Number of arguments: 3'
?>

func_num_args() may be used in conjunction with func_get_arg() and func_get_args() to allow user-defined functions to accept variable-length argument lists.



User Contributed Notes
func_num_args
andy at arakka dot co dot th
11-May-2005 09:16
func_num_args() can be used in conjunction with named arguments, also. For example:
function DebugShow( $label, $value ) {
  echo "# " . $label ;
  if ( func_num_args() > 1 ) echo " = " . $value ;
  echo "<br>";
}
ashley at dcs dot warwick dot ac dot uk
17-Apr-2002 06:40
If you want to pass the parameters on intact to another function, use func_get_args and call_user_func_array (careful - this one is only available in recent PHP versions).  For example:

/* Print an HTML tag.  This accepts a variable number of arguments:
   the first should be the name of the tag, followed by pairs of
   arguments that describe keys and values.  The values are printed
   with surrounding double quote characters.  */
function printTag() {
  $numArgs = func_num_args();
  if ($numArgs < 1) die("printTag given no arguments");
 
  echo "<" . func_get_arg(0);
  for ($i = 1; $i < $numArgs; $i+=2) {
   echo " " . func_get_arg($i);
   if ($i+1 < $numArgs)
     echo "=\"" . func_get_arg($i+1) . "\"";
  }
  echo ">";
 
}

/* Print an HTML tag with a newline on the end */
function printTagNL() {
  $args = func_get_args();
  call_user_func_array("printTag", $args);
  echo "\n";
}

printTagNL("input", "type", "hidden", "name", "SORTORDER", "value", $columnNo);
thalis at NOSPAMcs dot pitt dot edu
29-Mar-2002 02:05
The idea of func_get_args() is to construct functions of variable number of parameters like
function var_param_func(){
   if(func_num_args()==0){
       //do one thing
   }
   if(func_num_args()==1)
       //do another thing
       //get the args with func_get_args()
   }
}

<func_get_argsfunction_exists>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 17:35:34 2005 CDT