我想在PHP中使用真正的可选参数。我意识到我可以做这样的事情:
function my_function($req_var, $opt_var1 = 90, $opt_var2 = "lala") {
die("WEEEEEEEE!");
}
但是,如果我只想指定$opt_var2
的值,我仍然必须为$opt_var1
指定一个值。
这是一个例子。
my_function("lala", 90, "omg");
换句话说,我必须明确地将90
写为$opt_var1
,即使它只是我要更改的$opt_var2
。
是否可以做这样的事情?
my_function("lala", default, "omg");
那会非常有帮助。
答案 0 :(得分:6)
function my_function($req_var, $opt_var1 = NULL, $opt_var2 = NULL) {
if ($opt_var1 === NULL) {
$opt_var1 = 90;
}
if ($opt_var2 === NULL) {
$opt_var2 = "lala"
}
}
my_function("lala", NULL, "omg");
答案 1 :(得分:3)
数组参数有一种方法:
function my_func(array $params = array()){
$arg1 = isset($params['one']) ? $params['one'] : 'default';
$arg2 = isset($params['two']) ? $params['two'] : 'default';
$arg3 = isset($params['three']) ? $params['three'] : 'default';
// ...
}
答案 2 :(得分:2)
您可以使用作为关联数组的参数并使用extract
:
function func($options= array()) {
$option1= "default value";
..
extract($options);
..
}