PHPにおけるPHP Warning: Missing argument 1 for… というエラーの原因と対処方法メモです。
結論から言うと定義された引数と、呼び出す引数が異なりますよーというエラーですね。
さて、どういう事か確認してみましょう。
SPONSORED LINK
警告:引数が欠落しています
例えば以下のようなユーザー定義関数を作った場合を想定してみましょう。
function f_name ($x, $y) {
echo $x . "ok";
echo $y . "ok";
}
そしてそのf_name関数を呼び出す際に引数を間違えて指定したとします。
f_name($y);
このように引数の数が合致しない場合に起こるエラーですね。
ちなみに上記の場合で正しい呼び出し方法となるのは以下です。
name($x,$y);
このように引数がマッチすることが正しいわけです。
初期値を指定する
関数内で複雑な処理が行われる時など、
function name($x){
if($y){
処理1
}else{
処理2
}
}
処理の状態によっては「Missing argument」の原因になります。
これは引数が初期値すら想定していないことにあります。
ということは初期値を空で指定しておけばいいわけですね。
function name($x = null){
if($y){
処理1
}else{
処理2
}
}
といった初期値が理想的です。
頭を柔らかくパズルのようにプログラムが組めるようになればPHPのおもしろさも増しますよ。
まとめ
PHPを普段から馴れているつもりでもちょっとしたミスでエラーが出てしまうことがよくあります。
プログラムの設計では、初期値の考え方を念頭に置いたり、あらゆるケースを想定してエラー処理を組み込むことも重要ですね。
今日も知識欲は止まらない。