制御構造の基本 : 関数の引数 5(デフォルト値のある引数はない引数の右側に集めて書く)

最初にデフォルト値にない引数を指定し、デフォルト値のある引数は後ろにまとめて書くこと! そうしないとエラーになる。

×……関数(引数="デフォルト値" , 引数="デフォルト値" , 引数 , 引数)
○……関数(引数, 引数 , 引数="デフォルト値" , 引数="デフォルト値")

お名前は[ 鈴木敬一郎 ]さんで、性別は[ 男性 ]で、年齢は[ 20 ]ですね
お名前は[ 山田太郎 ]さんで、性別は[ 男 ]で、年齢は[ 35 ]ですね
お名前は[ 吉田恵美子 ]さんで、性別は[ 女 ]で、年齢は[ 25 ]ですね
お名前は[ ]さんで、性別は[ 男性 ]で、年齢は[ 鈴木敬一郎 ]ですね
お名前は[ 山田太郎 ]さんで、性別は[ 男 ]で、年齢は[ 35 ]ですね
お名前は[ 吉田恵美子 ]さんで、性別は[ 女 ]で、年齢は[ 25 ]ですね

source

<?php
//デフォルト値のある引数を後半にまとめて書いてあるので動く
function outName1($name,$age=20,$gender="男性")	{
	$outStr = "お名前は[ $name ]さんで、性別は[ $gender ]で、年齢は[ $age ]ですね<br>";
	return $outStr;
}
echo outName1("鈴木敬一郎");
echo outName1("山田太郎",35,"男");
echo outName1("吉田恵美子",25,"女");

//デフォルト値のある引数を前半に書いてあるのでエラーになる
function outName2($age=20,$gender="男性",$name)	{
	$outStr = "お名前は[ $name ]さんで、性別は[ $gender ]で、年齢は[ $age ]ですね<br>";
	return $outStr;
}
echo outName2("鈴木敬一郎");
echo outName2(35,"男","山田太郎");
echo outName2(25,"女","吉田恵美子");
?>