これは 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);