在
PHP中是否有一种方法可以使用在其声明中具有可选参数的函数,其中我不必传递已经声明了值的可选参数,并且只传递具有不同值的下一个参数.参数列表.
假设我有一个有4个参数的函数,2个强制,2个可选.我不想为可选参数使用空值.在使用中,有些情况下我想使用该函数,第三个参数的值与默认值相同,但第四个参数的值不同.
我正在寻找一个不那么详细的解决方案,它允许我只传递与默认值不同的参数而不考虑函数声明中的顺序.
createUrl($host, $path, $protocol='http', $port = 80) {
//doSomething
return $protocol.'://'.$host.':'.$port.'/'.$path;
}
我发现自己重复声明变量,以便我可以使用函数,即使用$port,我使用函数范围之外的默认值重新声明$protocol,即
$protocol = "http";
$port = 8080;
有没有办法传递第二个可选参数($port)而不传递$protocol,它会“自动”填写$protocol的默认值,即
getHttpUrl($server, $path, $port);
这在某些语言中是可能的,例如命名可选参数形式的Dart.请参阅此SO线程中的用法.他们是PHP中的类似解决方案