引数のある関数と引数のない関数の設定
お世話になっております。
PHPのプログラミングで関数をつくる際に、引数を渡す関数と引数がない関数がありますが、すでに定義済みの関数のように、引数がある場合と引数がない場合の両方を取り扱うにはどうしたらよいでしょうか?
function example ($a) {
if ($a == 0 || $a == '') {
print '引数なし';
} else {
print $a;
}
}
のような関数で、
example();
という感じで引数を入れないと、
Warning: Missing argument …
というエラーがでてしまいます。関数を
example('');
と呼び出すと大丈夫なのですが。。。
プログラマーにとって基本的なことだと思うのですが、調べてもなかなか出てこないので質問させて頂きました。どなたかわかる方がいたらしたらおしえてください。
よろしくお願いします!
}
回答(3件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.3ベストアンサー20pt
そのまえに・・・・
if($a == 0 || $a == ''){}
という条件式はいただけません。
if($a == ''){}
で十分です。そうではない場合引数に文字列をあたえると
$a == 0にヒットします。もしくは厳密にやるなら
if($a === 0 || $a === ''){}
としてください。
それを踏まえて、引数に初期値を与えると省略が可能です。
<?
example();
example(0);
example("hoge");
function example($a=0){
if ($a=='') print '引数なし';
else print $a;
}
?>
この回答へのお礼
詳しい解説あいがとうございます。
===と初期値の設定だったのですね。むかし勉強したことを思い出しました。。
ありがとうございます!
No.2ベストアンサー10pt
以下のように関数を定義しておけば
function example ($a=NULL) {
example(); として実行すれば $a=NULLが関数内でデフォルトで使われます
example(5); として実行すれば$a=5になります
この回答へのお礼
ありがとうございます!
この場合は、初期値はNULLでもいいんですね。。。。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示











