- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:関数の第二引数を省略可にする方法)
関数の第二引数を省略可にする方法
このQ&Aのポイント
- 関数の第二引数を省略して実行するとエラーが発生するため、第二引数の有無を判定する必要がある。
- hogehoge関数の場合、第二引数の値が存在する場合のみ、引数を結合して実行するように条件分岐を追加する。
- isset関数を使用して第二引数が存在する場合のみ結合するようにすると、第二引数を省略してもエラーが発生しなくなる。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
↓ こういうことでいいのかな? function hogehoge($str,$strstr = "") {
その他の回答 (3)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.4
デフォ値を設定するのはすでにでているので func_get_arg()を使えば、好きなように引数を処理できます。 ただ仕様が固めにくいのであまりお勧めはできません。 <?php function hoge() { for($i=0;$i<func_num_args();$i++){ var_dump(func_get_arg($i)); } } hoge("abc","xyz",1,2,NULL);
- agunuz
- ベストアンサー率65% (288/438)
回答No.3
- CyberCypher
- ベストアンサー率73% (39/53)
回答No.2
#1さんが回答を付けていますが機能の説明だけ function test($val="default"){} と関数の引数に初期値を入力してやると 引数が渡されなかった場合、初期値を代入します この機能はデフォルト引数と言って別言語でもよく使われます デフォルト引数と必ず渡さなければいけない引数を混在させる場合 デフォルト引数を関数の引数の末尾に渡します function test($val1, $val2, $val3="def1", $val4="def2", $val5="def3"){} 以下は不可能です function test($val1, $val2, $val3="def1", $val4, $val5="def2"){} function test($val1="def1", $val2, $val3, $val4, $val5){} function test($val1, $val2, $val3="def1", $val4, $val5){}
お礼
皆さま 解答ありがとうございます。 どれも 参考になりました。 デフォルトに""を指定すると if ($strstr) {} みたいにif文が使えるので 使い勝手が良いかと思いました。