如何在PHP函数中传递特定变量

Ian*_*lor 6 php variables parameters function

我有一个PHP函数,需要可以采取3参数...我想传递第一和第三参数的值,但我希望第二个默认...

如何指定我传递的是哪些,否则将其解释为传递第1和第2个插槽的值.

谢谢.

Pas*_*TIN 8

您不能"不传递"不在参数列表末尾的参数:

  • 如果要指定第3个参数,则必须传递第1个和第2个参数
  • 如果你想指定第二个参数,你必须通过第一个参数 - 但是如果可选,则可以省略第三个参数.

在您的情况下,您必须传递第二个参数的值 - 默认值,理想情况下; 哪,是的,要求您知道该默认值.


一个可能的替代方案是你的函数没有3个参数,但只有一个,一个数组:

function my_function(array $params = array()) {
    // if set, use $params['first']
    // if set, use $params['third']
    // ...
}
Run Code Online (Sandbox Code Playgroud)

并调用这样的函数:

my_function(array(
    'first' => 'plop',
    'third' => 'glop'
));
Run Code Online (Sandbox Code Playgroud)

这将允许您:

  • 接受任意数量的参数
  • 所有这些都可能是选择性的

但是:

  • 你的代码不太容易理解,文档也没那么有用:没有命名参数
  • 您的IDE无法提供函数接受哪些参数的提示