PHPエラー対処方法「 Warning: Missing argument 1 for」

php_Missing_argument
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を普段から馴れているつもりでもちょっとしたミスでエラーが出てしまうことがよくあります。
プログラムの設計では、初期値の考え方を念頭に置いたり、あらゆるケースを想定してエラー処理を組み込むことも重要ですね。

今日も知識欲は止まらない。

関連トピック

ガラケーで画像やデコメを再配布不可など「ファイル制限あり」にする方法

ガラケーで画像の転送不可設定をする方法についてのまとめです。 コピー制限・保存制限・画面メモ制限・キャプチャ制限などの対策と方法です。

MySQL INSERT エラーNo.1064 の原因と対処方法メモ

MySQLへのINSERT時などに構文エラー1064が発生した場合は、 使用できない文字が混入しているという原因がほとんどです。 誤

MySQLのrand()ランダム関数の負荷問題を考えてみる

MySQLで結構使う場面が多いランダム関数rand()ですが、間違った指定をするとデータベースに思わぬ負荷をかけることになります。 今

JavaScriptでUA判別してスマホとタブレットを振り分ける方法

JavaScriptを使用してUAでiPhoneやAndroidのスマホを判定したり、増加傾向にあるタブレットを判別する方法メモ。 U

インデントはタブとスペースのどっちを使うべきなのか?

コーディングをする皆様。インデントを今日もせっせと打っていらっしゃりますか? さて、そのインデントを打つ時にタブ派とスペース派に分かれ

PHPエラー対処方法「malformed header from script. Bad header=No recipient addresses found i」

PHPからメールを送信する際に「malformed header from script. Bad header=No recipien

PHPで画像ダウンロードのボタンでリンクする方法

PHPを利用して画像をダウンロードさせるボタンを作成する方法メモです。 リンクボタンをクリックすると保存ダイアログが表示されて、ダウン

PHPでスマホのUAからキャリア判別する唯一の方法

PHPを使ってスマートフォンのUserAgentからキャリアを判別するたった一つの方法メモです。 今まではキャリアごとの制約やサービス

公開日:2009/02/19