這是不可能的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