如何将数组的参数初始化为其默认值?

时间:2017-07-05 05:56:57

标签: php function arguments parameter-passing

这是我的代码:

shinyapp

现在,我想为function myfunc( $arg1, $arg2 = 'sth', $arg3 = 'sth else' ){ // do stuff } 设置一个新值,并保留arg3的默认定义值。我怎么能这样做?

这样的事情:

arg2

预期结果为this fiddle中的myfunc( true, <keep everything defined as default>, $arg3 = 'new value' );

1 个答案:

答案 0 :(得分:3)

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

function my_function(array $value = array()) {
    // if set, use $value['key1']
    // if set, use $value['key2']
    // ...
}

并调用这个函数:

my_function(array(
    'key1' => 'google',
    'key2' => 'yahoo'
));

这将允许您:

  1. 接受任意数量的参数
  2. 所有这些都是可选的
  3. 希望它会有所帮助。