3

我想在 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");

那会很有帮助。

4

3 回答 3

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");
于 2013-05-15T08:45:59.473 回答
3

There is a way with array parameters:

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';

    // ...
}
于 2013-05-15T08:47:18.013 回答
2

您可以使用作为关联数组的参数,extract它:

function func($options= array()) {
    $option1= "default value";
    ..
    extract($options);
    ..
}
于 2013-05-15T08:55:03.627 回答