PHP的函数参数是可变的,即可以给一个参数传递一个或多个参数。但是它实现的方法和C++等语言不同,C++是通过默认参数在这种方法使得一个函数可以匹配不同数目的参数。而PHP中函数采用的方法却不是这样。
PHP中要声明函数有可变数目的参数,需要完全省去参数块。
function get_preference(){
//一些代码
}
PHP提供三个函数用于函数检索传送给该函数的参数:func_get_args()返回一个由所有提供给该函数的参数组成的数组;func_num_args()返回提供给该函数的参数个数。func_get_arg()从参数中返回制定的参数。
$array=func_get_args();
$count=func_num_args();
$value=func_get_arg(argument_number);
一个例子:
<?php $name=array("Fred","Barney","Wilma","Betty");function &find_one($n){global $name;return $name[$n];}
$person=&find_one(1);echo $person;?>
需要注意的是,以上的三个函数的返回值都不能够作为其它函数的参数直接使用,要使用这些值的话,需要先将这些值赋值给变量,然后在函数调用中使用。
foo(func_num_args()) //错误
应该是:
$count=func_num_args();
foo($count);