0

私のアプリケーションは、開発環境で完全に正常に動作しています。本番サーバーにアップロードすると、次のエラーが発生しました。

解析エラー: 構文エラー、予期しない T_FUNCTION、/home/fjamal/public_html/ に ')' が必要です* 27 行目の /anyname/application/config/config.php

エラーは次のコードを参照しています。

spl_autoload_register(function($class)
{
 if (strpos($class, 'CI_') !== 0)
 {
  if (file_exists($file = APPPATH . 'core/' . $class . EXT))
  {
   include $file;
  }
  elseif (file_exists($file = APPPATH . 'libraries/' . $class . EXT))
  {
   include $file;
  }
 }
}); 

上記のコードを古いバージョンに変更すると、次のようになります。

function __autoload($class)
{
 if (strpos($class, 'CI_') !== 0)
 {
  if (file_exists($file = APPPATH . 'core/' . $class . EXT))
  {
   include $file;
  }
  elseif (file_exists($file = APPPATH . 'libraries/' . $class . EXT))
  {
   include $file;
  }
 }
}  

次のエラーが表示されます。

致命的なエラー: クラス 'Frontend_Controller' が /home/fjamal/public_html/ * * /anyname/application/controllers/home.php の 4 行目に見つかりません

エラーの説明:私のコントローラーは、Libraries フォルダーにある Frontend_Controller から拡張されています。Frontend_Controller は、core フォルダーの下にある MY_Controller から拡張されます。なんらかの理由で、本番環境でのこれらの問題はすべて、ローカルホストでは取得できません。したがって、ホームはデフォルトのコントローラーです。

このエラーにより、アプリケーションの実行が停止します。まったくわかりませんでした。どんな助けでも大歓迎です。

4

1 に答える 1

1

あなたの実稼働サーバーはPHP <5.3で実行されていると思います

あなたのコードは無名関数を使用しています。それらは PHP 5.3.0 で導入されました。

解決策: 名前付き関数を作成し、それをコールバックとして使用します。

于 2012-10-11T23:24:24.187 に答える