PHP 複数の引数にデフォルト値をもたせるときの注意点

PHPでは関数の引数にデフォルト値をもたせることができます。

function add($a = 3, $b = 5) {
  $c = $a + $b;
  echo ($a.'+'.$b.'='.$c);
}

add() // 3+5=8
add(5,7) //5+7=12

デフォルト値を持つ引数と持たない引数が混在する場合には以下のようにデフォルト値を持つ引数は、デフォルト値を持たない引数よりも後に書かなければなりなせん。
そうでないと意図しない処理が行われてしまう可能性があります。

function add($a, $b = 5) {
  $c = $a + $b;
  echo ($a.'+'.$b.'='.$c);
}

add(4) // 4+5=9
add(5,7) //5+7=12