PHP 函数不定参数和默认参数
PHP作为一门弱化语言,支持c语言类似的不定参数和可选参数,只是格式书写格式不致,如:
不定参数:
使用函数fun_num_args()获取参数个数,使用fun_get_args()获取参数,指定索引则获取第内个参数,未指定索引指获取所有参数并生成数组返回。
function foo()
{
$numargs = func_num_args(); //参数数量
echo "参数个数是: $numargs\n";
if ($numargs >= 2)
{
echo "第二个参数的值:" . func_get_arg(1) . "\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++)
{
echo "第{$i}个参数值:{$arg_list[$i]}\n";
}
}
foo(1, 'd', 3,4);
?>
输出:
参数个数是: 4
第二个参数的值:d
第0个参数值:1
第1个参数值:d
第2个参数值:3
第3个参数值:4
可选参数的形式:
可选的参数可采用默认和c++类似,参数未指定使用默认的参数,如指定则用新的参数,但不能跳参数指定。
function mosaic($var1, $var2, $var3='c', $var4='d')
{
return $var1.$var2.$var3.$var4;
}
$parm_fir = '1';
$parm_sec = '2';
$parm_three = '3';
$parm_four = '4';
echo mosaic($parm_fir , $parm_sec)."
"; //输出'12cd'
echo mosaic($parm_fir, $parm_sec, $parm_three)."
";//输出'123d'
echo mosaic($parm_fir, $parm_sec, $parm_three,$parm_four);//输出'1234'
echo mosaic($parm_fir); //出错:必须给出第二个必填参数
echo mosaic($parm_fir, $parm_sec, $parm_three);//出错:不能跳过任何一个可选参数而给出列表中后面的可选参数
?>