我有一个具有已知数量参数的函数,例如
function myFunction($name, $id=1,$salary=1000) {
echo $id;
echo $name;
echo $salary
}
当我调用此函数时
myFunction("name");
显示
但是如何忽略此函数的id
参数并且只想给出第一个和第三个参数?
像
myfunction("name",ignore 2nd parameter and give value of 3rd parameter)
以便显示
答案 0 :(得分:3)
您不能使用本机代码。两种解决方案:
获取一系列参数:
function myFunction($params) {
if (!isset($params['name'])) throw new Exception();
if (!isset($params['id'])) $params['id'] = 1;
if (!isset($params['salary'])) $params['salary'] = 1000;
echo $params['id'];
echo $params['name'];
echo $params['salary'];
}
创建新功能myFunction2
:
function myFunction2($name, $salary) {
return myFunction($name, 1, $salary);
}
答案 1 :(得分:0)
变量参数函数?
function myFunction() {
switch (func_num_args()) {
case 2:
$name = func_get_arg(0);
$salary = func_get_arg(1);
break;
case 3:
$name = func_get_arg(0);
$id = func_get_arg(1);
$salary = func_get_arg(2);
break;
default:
throw new Exception();
}
}
myFunction('name', 1000);
myFunction('name', 1, 2000);
如果您想为这些设置默认设置,那么您可以在switch语句中执行此操作。
我并不是说这是一个很好的解决方案,但它是一个解决方案。
答案 2 :(得分:0)
第二个功能将完成这项工作。
function second($name,$another){
first( $name ,1,$another);
}