今天意外发现,原来PHP中也有类似JavaScript函数arguments的功能,就是获取用户实际传递的参数信息。主要是依赖func_get_arg、func_get_args、func_num_args三个函数来实现。
实例:
function fn($name='dqs',$age=26,$job='student'){
//获取传递的参数个数
echo func_num_args() ,'</br>';
var_dump(func_get_args());
}
fn('pps');
/**
1
array(1) { [0]=> string(3) "pps" }
**/
fn('pps',23);
/*
2
array(2) { [0]=> string(3) "pps" [1]=> int(23) }
*/
突然感觉相当不错,这样就能很直接知道,调用函数实际传递参数有哪些。那么针对类的方法是否也能这样去判断呢?
class Student{
public function fn($name='dqs',$age=26,$job='student'){
//获取传递的参数个数
echo func_num_args() ,'</br>';
var_dump(func_get_args());
echo '</br>';
}
}
$s=new Student;
$s->fn();
$s->fn('pps');
$s->fn('pps',26);
执行结果如下图:
很明显针对类的方法同样是适用的。