[英]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.