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