在設計函數時,為了避免呼叫函數時沒有傳入參數值,因此我們可以替函數的參數加上預設值,例如:
<?php function add($x = 0, $y = 0) { return $x+$y; }
echo add(); ?>
因為呼叫 add() 時沒有傳入值,因此最後的輸出結果為:
0
呼叫函數時,如果沒有加上傳入值,則使用預設值。重要的是,如果只為某些參數加上預設值,加上預設值的參數必須全部靠右:
<?php function add($x, $y = 1, $z = 2) { return $x+$y+$z; }
echo add(5); ?>
結果:
8
底下都是錯誤的寫法:
unction add($x = 1, $y, $z = 2) { return $x+$y+$z; }
function add($x = 1, $y = 2, $z) { return $x+$y+$z; }
這是因為函數是由左而右存放傳入值的關係,錯誤的寫法會導致 PHP 認為傳入的參數不足的錯誤,例如:
function add($x = 1, $y = 2, $z) { return $x+$y+$z; }
echo add(10);
此時,$x = 10,不使用預設值,但因為沒有傳入值給 $z,所以會產生錯誤。
--jollen