php supports variable number of parameter lists in user-defined functions.
In php5.5 and earlier versions, use the func_num_args(), func_get_arg(), func_get_args() function implementation.
<?phpfunction myfunc(){ // 获取参数数量 echo func_num_args().PHP_EOL; // 获取第一个参数的值: print_r(func_get_arg(0)); echo PHP_EOL; // 获取所有参数的值 print_r(func_get_args()); echo PHP_EOL; } myfunc('a'); myfunc(1, 2, 3); myfunc(array('d','e'), array('f'));?>
Output:
1aArray( [0] => a )31Array( [0] => 1 [1] => 2 [2] => 3)2Array( [0] => d [1] => e )Array( [0] => Array ( [0] => d [1] => e ) [1] => Array ( [0] => f ) )
In php5.6 and above, you can use … Grammar implementation.
Example 1: Use...$args to replace any number of parameters
<?phpfunction myfunc(...$args){ // 获取参数数量 echo count($args).PHP_EOL; // 获取第一个参数的值: print_r($args[0]); echo PHP_EOL; // 获取所有参数的值 print_r($args); echo PHP_EOL; } myfunc('a'); myfunc(1, 2, 3); myfunc(array('d','e'), array('f'));?>
The output results are the same as php5.5 using func_num_args(), func_get_arg() , the func_get_args() function is consistent.
Example 2: Convert array to parameter list
<?phpfunction add($a, $b){ echo $a + $b; }$args = array(1, 2); add(...$args); // 输出3?>
Example 3: Partial parameters specified, others The number of parameters is variable
<?phpfunction display($name, $tag, ...$args){ echo 'name:'.$name.PHP_EOL; echo 'tag:'.$tag.PHP_EOL; echo 'args:'.PHP_EOL; print_r($args); echo PHP_EOL; } display('fdipzone', 'programmer'); display('terry', 'designer', 1, 2); display('aoao', 'tester', array('a','b'), array('c'), array('d'));?>
Output:
name:fdipzone tag:programmer args:Array( ) name:terry tag:designer args:Array( [0] => 1 [1] => 2) name:aoao tag:tester args:Array( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [0] => c ) [2] => Array ( [0] => d ) )
This article explains the issues related to PHP functions using a variable number of parameters. For more information, please visit Follow php Chinese website.
Related recommendations:
How to call Sina API through php to generate short links
Explain mysql group by sorting within the group Method
How to use php to reflect API to obtain class information
The above is the detailed content of Related content about php functions using a variable number of parameters. For more information, please follow other related articles on the PHP Chinese website!