PHP での Call to undefined function エラー

スポンサーリンク
スポンサーリンク

PHPのコードを別環境で動かそうとした時に、次のエラーが発生してしばらく悩みました。

PHP Fatal error:  Call to undefined function XXXXX() in YYYYY.php

関数 XXXXX()は、YYYYY.php の先頭で require_once ‘ZZZZ.php’ したファイル内で定義しています。
試しに require_once ‘ZZZZ.php’ の代わりに存在しないファイル ZZZZ_test.php にしたら、次のようにエラーになるので、ZZZZ.php は読み込まれているようです。

PHP Fatal error:  require_once(): Failed opening required 'ZZZZ_test.php'

関数定義したファイルは読み込まれているのに、エラーで関数が定義されていないと言われます。
謎でした。

これ、原因は次の2つによるものでした。

  • php.ini の short_open_tag オプションが Off(デフォルト)
  • phpファイルが

short_open_tag オプションが On だと、phpファイルが ただ、short_open_tag がデフォルトの Off の時でも、ファイルが

  • phpファイルの始まりを
  • php.ini の short_open_tag オプションを On にする

PHP で Call to undefined function エラーがどうしても取れない場合は、確認してみて下さい。

コメント

タイトルとURLをコピーしました