function foo( $arg1 = NULL, $arg2 = NULL, $arg3 = NULL) { $result = NULL; $arg1 = $arg1 === NULL? "arg1's default": $arg1; $arg2 = $arg2 === NULL? "arg2's default": $arg2; $arg3 = $arg3 === NULL? "arg3's default": $arg3; // 実装 return $result; } ポイントとしてはこの辺です. ・引数の省略したときの値は絶対NULLにする ・関数の出口は最後の「return $result」という決まった1文のみにする.途中で絶対抜けないこと まずひとつめですが,賛否あると思いますが,NULLはある意味一番中立な型の値になると思います.この関数のこの引数は文字列だから省