1
        spl_autoload_register(function ($className) 
        {
            if (file_exists($className . '.php'))
            {
                require_once($className . '.php');
            }
            else
            {
                throw new Exception('Could not load class: ' . $className);
            }
        });

        //Load models and save them in variable instances
        try 
        {
            $this->database = new Database  (
                                                $config['DB']['HOST_IP'], 
                                                $config['DB']['DATABASE_NAME'], 
                                                $config['DB']['USERNAME'], 
                                                $config['DB']['PASSWORD']
                                            );
            //Set the initial language for our template model.
            Template::setLanguage();
        }
        catch (Exception $e) 
        {
            echo $e->getMessage();
        }

スクリプトは消去すると機能しますが、何file_existsがあってもfalseを返します。file_exists

これを引き起こしているのは何ですか?

また、次のエラーメッセージが表示されますUncaught exception 'Exception' with message 'Could not load class: Template'。テンプレートクラスが静的であるためですか?

4

2 に答える 2

0

問題は、PHP ファイルに 2 つの拡張機能があることでした。(例: index.php.php) 残念ながら、Windows 環境が構成されていなかったため、問題を見つけるのに苦労しました。

于 2013-03-20T02:31:23.600 に答える
0

コードには 2 つの誤りがあります。

  1. 意味のある合理的なシステムエラーメッセージの代わりに、役に立たない一般化されたエラーメッセージをエコイングしています
  2. try-catchメッセージをエコーするためだけに使用しています。これは致命的な間違いです。

したがって、コード内のすべての try-catch ブロックを削除して、もう一度実行してください。エラーを処理しない場合
は使用しないでくださいtry..catch

その代わりに、エラーメッセージを表示できるようにエラーレポートを設定します

error_reporting(E_ALL);
ini_set('display_errors',1);
于 2013-03-15T11:41:48.913 に答える