繁体   English   中英

将变量传递给 PHP 中的函数

[英]Passing variables to functions in PHP

我有以下 PHP function:

 function func_name($name = 'John', $country = 'USA')
  {
  do something;
  }

现在,我试图将变量传递给 function,如下所示:

func_name($name = 'Jack', $country = 'Brazil');

我知道,我们可以轻松地将其传递为func_name('jack', 'Brazil'); 但上面的 function 只是一个例子。 实际的 function 大约有 20 个 arguments 并且都有默认值,有些根本没有传递给 function

所以我想知道将 arguments 作为func_name($name = 'Jack', $country = 'Brazil');

你能传入一个数组吗?

function something($arr) {
    $name = $arr['name'];
}


function something(Array("name"=>"jack", "country"=>"UK"));

不,这不是正确的做法。 foo($bar = 'baz')意味着您像往常一样将'baz'分配给变量$bar 赋值操作产生已分配的值,因此表达式$bar = 'baz'具有值'baz' 这个'baz'被传递到 function。 这些函数没有任何线索表明您已分配给变量$bar

换句话说,PHP 不支持命名的 arguments。

如果您的 function 接受许多参数,所有或大部分是可选的,请使用 arrays:

function foo(array $args = array()) {
    // set default values for arguments not supplied
    $args += array('name' => 'John', 'country' => 'USA', …);

    // use $args['name'] etc.
    // you could do extract($args), then use $name directly,
    // but take care not to overwrite other variables

}

foo(array('country' => 'Japan'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM