Php 可选参数为';这不是真正的选择

Php 可选参数为';这不是真正的选择,php,Php,我希望在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

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

这将非常有用。

有一种使用数组参数的方法:

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

    // ...
}

您可以使用关联数组的参数并
提取它:

function func($options= array()) {
    $option1= "default value";
    ..
    extract($options);
    ..
}

在所需参数后定义可选参数,这不是解决方案。请注意,我有两个可选参数,我只想更改最后一个。您可以使用一个参数数组。不过,这是一个解决办法。请务必查看这个答案,它模拟了
Python
kwargs行为。如果
NULL
可能也是我希望能够解析到函数中的有效值,该怎么办?