这是不可能的PHP,因为方便,因为它会是这样,但也有一对夫妇的周围方式。
function func($val1=null, $val2=null) {
// Set default values.
if (!$val1) $val1 = 1;
if (!$val2) $val2 = 2;
// Your code here.
}
func(null, 74); // Uses the default value of 1 for $val1.
或者(如果你有一个很长的参数列表多更加便利)使用数组:
function func($arr) {
// Set default values.
$val1 = isset($arr[1]) ? $arr[1] : 1;
$val2 = isset($arr[2]) ? $arr[2] : 2;
// Your code here.
}
func(array(2 => 74)); // Uses the default value of 1 for $val1.
其实,我有一个函数,它接受阵列,钥匙,和默认值,并返回一个值,因此我可以将这些行写为
$val1 = Core::val($arr, 1, 1); // array, key, default
$val2 = Core::val($arr, 2, 2);
不可能。您确实需要这种行为,请在签名中切换参数1和2。 – 2012-04-16 20:20:05
是的,你正在寻找PHP中没有的关键字参数,例如在Python中。 – 2012-04-16 20:23:17
[PHP中使用函数中的默认参数]的可能的重复(http://stackoverflow.com/questions/9166914/php-using-default-arguments-in-a-function) – 2012-04-16 20:23:54