Code Fix

初級

未定義の関数を呼び出したエラーの原因と直し方

存在しない名前の関数を呼び出したときに出るエラーです。関数名のタイプミスのほか、必要なファイルをrequireし忘れているときにも起こります。

エラーメッセージの読み方

Fatal error: Uncaught Error: Call to undefined function calcTtal() in main.php:5
main.php
ファイル名
5
行番号 — 実際にクラッシュした行
Error
例外クラス — 何が起きたか。ここを検索するのが最短です
Call to undefined function calcTtal()
内容 — どの値が問題だったか

このエラーが出る典型パターン

パターン1

 1  <?php
 2  function calcTotal($a, $b) {
 3      return $a + $b;
 4  }
 5  echo calcTtal (1, 2);
             ^
Fatal error: Uncaught Error: Call to undefined function calcTtal() in main.php:5

定義した関数名はcalcTotalですが、calcTtalという1文字違いの名前を呼び出しています。存在しない関数名はここで致命的エラーになります。

直し方: calcTtalcalcTotal にします。

この問題を解いてみる →

広告
広告スロット(未設定)

パターン2

 1  <?php
 2  function sayHi($name) {
 3      echo "Hi " . $name;
 4  }
 5  sayHii("Al");
       ^
Fatal error: Uncaught Error: Call to undefined function sayHii() in main.php:5

sayHiiという名前の関数は定義されていません。1文字でも違えば別の名前として扱われます。

直し方: sayHiisayHi にします。

この問題を解いてみる →

パターン3

 1  <?php
 2  function sumArray($arr) {
 3      return array_sum($arr);
 4  }
 5  echo sumArry  ([1, 2, 3]);
             ^
Fatal error: Uncaught Error: Call to undefined function sumArry() in main.php:5

sumArryという名前は定義されていません。定義済みのsumArrayを呼び出す必要があります。

直し方: sumArrysumArray にします。

この問題を解いてみる →

よくある誤解

「関数名を間違えてもPHPが似た名前を探して実行してくれる」ということはありません。1文字でも違えば別の名前として扱われ、その場でプログラムが停止します。

まとめ

未定義の関数を呼び出したエラーの原因と直し方は初級でつまずきやすい項目です。上の3パターンを実際に手で直すと、エラーメッセージのどこを読めばよいかが掴めます。

演習をはじめる

関連するエラー

広告
広告スロット(未設定)