Fatal error: Uncaught ArgumentCountError: Too few arguments to function に対処
PHPでプログラミングしていると、時たま初めて見るエラーに出くわすことがあります。
大抵は文法エラーなのですが、その場合はエラーメッセージに問題点がはっきり記載されます。
今回は、エラーがはっきり明記されているのですが、何がエラーなのかよくわからない現象でした。
ググって調べて対処できましたので、忘備録として記録いたします。
次のソースで今回のエラーが発生しました。
1 2 3 4 5 6 7 8 9 10 |
<?php test(1); function test($arg01, $arg02) { } ?> |
今回上記のソースでエラーが発生しました。
呼び出し元と関数が並んでいればすぐにわかるエラーです。
今回は呼び出し元と関数が別ファイルになっておりなかなか原因に気づけませんでした。
原因は呼び出し元の引数が足りない
エラーの原因は呼び出し元の引数が足りないことでした。
関数の引数は2つあるのに対し、呼び出し元は引数を1つしか指定していません。
引数の数が合わないためエラーになったのです。
関数にデフォルト値を指定すれば解決します。
呼び出し元に足りない引数を足せばエラーは直りますが、そもそも関数に初期値を指定しておけばエラーになりません。
今回の例も以下のように初期値を指定しておけばOKです。
1 2 3 4 5 6 7 8 9 |
<?php test(1); function test($arg01=1, $arg02=null) { } ?> |
関数の引数に初期値を指定することで、呼び出し元の引数が足りなくてもエラーにならなくなります。
ちょっとしたことも自身で調べることが大事
今回の内容は変則的な文法エラーが原因でした。
なので、思ったより早く解決できました。
会社など人数が多い場合つい、知ってそうな人に聞きがちです。
無論、人に聞いて解決できれば目的は達成できます。
でも、人に聞かず自分で調べる人のほうが将来能力が高くなります。
なぜならば、苦労して調べたことは記憶に残るからです。
記憶に残っていれば、次回同じ問題が起こった時にすぐに対応できます。
これが知識が増えるという現象なのです。