Web*_*ice 1 php arguments function
我有以下PHP函数:
function func_name($name = 'John', $country = 'USA')
{
do something;
}
Run Code Online (Sandbox Code Playgroud)
现在,我尝试将变量传递给函数,如下所示:
func_name($name = 'Jack', $country = 'Brazil');
我知道,我们可以很容易地通过它, func_name('jack', 'Brazil');但是上面的功能只是一个例子。实际的函数大约有20个参数,并且都具有默认值,有些根本没有传递给函数
所以我想知道是否适合作为参数传递参数 func_name($name = 'Jack', $country = 'Brazil');
您可以传递数组吗?
function something($arr) {
$name = $arr['name'];
}
function something(Array("name"=>"jack", "country"=>"UK"));
Run Code Online (Sandbox Code Playgroud)
不,这不是正确的方法。foo($bar = 'baz')表示您将照常分配'baz'变量$bar。该分配操作将产生已分配的值,因此表达式$bar = 'baz'具有值'baz'。该值 'baz'被传递到函数中。这些函数没有为您分配给变量的任何线索$bar。
换句话说,PHP不支持命名参数。
如果您的函数接受许多参数(全部或大部分是可选参数),请使用数组:
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'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4301 次 |
| 最近记录: |