file_exists()在没有安装safe_mode的情况下失败

时间:2013-03-15 11:34:13

标签: php

        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,则脚本有效,但file_exists无论如何都会返回false。

可能导致这种情况的原因是什么?

另外,我收到一条错误消息:Uncaught exception 'Exception' with message 'Could not load class: Template'。是因为Template类是静态的吗?

2 个答案:

答案 0 :(得分:0)

您的代码有2个错误。

  1. 而不是有意义和合理的系统错误消息,你正在生态只是无用和广义的错误信息,这无法帮助你
  2. 您只是使用try-catch来回复消息。这是致命的错误。
  3. 因此,只需删除代码中的所有try-catch块并再次运行它 如果您不打算处理错误

    ,请不要使用try..catch

    而不是设置错误报告,以便能够看到错误消息

    error_reporting(E_ALL);
    ini_set('display_errors',1);
    

答案 1 :(得分:0)

问题是我的PHP文件有两个扩展名。 (例如index.php.php)遗憾的是,Windows环境没有配置,所以我很难找到问题。