php-如何在函数中传递一些参数

时间:2013-12-20 13:20:11

标签: php function

我有一个具有已知数量参数的函数,例如

    function myFunction($name, $id=1,$salary=1000) {
        echo $id;
        echo $name;
        echo $salary
    }

当我调用此函数时

myFunction("name");

显示

  • 1名称1000

但是如何忽略此函数的id参数并且只想给出第一个和第三个参数? 像

myfunction("name",ignore 2nd parameter and give value of 3rd parameter)

以便显示

  • 名称1给定薪水

3 个答案:

答案 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);
}