パソコン鳥のブログ

アクセスカウンタ

zoom RSS PHP での Call to undefined function エラー

<<   作成日時 : 2016/10/12 22:53   >>

トラックバック 0 / コメント 0

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ファイルが<?php では無く、<? だけで始まる


short_open_tag オプションが On だと、phpファイルが <? だけで始まってもOKになります。

ただ、short_open_tag がデフォルトの Off の時でも、ファイルが <? だけで始まっても、PHPは require での読み込み時にエラーにしないようです。


元々PHPのコードが動いていた環境では、short_open_tag オプションが On になっていたので、問題無く動作していたようです。


ということで、対応は次のいずれかになります。

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



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


テーマ

関連テーマ 一覧


月別リンク

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
PHP での Call to undefined function エラー パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる