试图包含文件,file_exists是必不可少的?

时间:2013-05-12 06:21:04

标签: php include file-exists

很抱歉可能会重复询问。但是很难用这个可混淆的关键词来搜索答案。

所以这是场景:

我尝试建议制作简单的自动加载器。到目前为止我是这样做的:

private function getAutoInclude($classfile) {
    $classfileLower = strtolower($classfile);

    if (isset($this->configs['Paths']['base.'.$classfileLower])) { // Use path scope to locate file first
        return require_once($this->configs['Paths']['base.'.$classfileLower]['Path']);
    } elseif ($this->configs['LibRoot'] && strpos($classfile, '\\') !== false) { // If above not work, use namespace to locate file
        return require_once($this->configs['LibRoot'] . DIRECTORY_SEPARATOR . str_replace(array('\\', '/', '_'), DIRECTORY_SEPARATOR, ltrim($classfile, '\\')) . '.php');
    }

    return false;
}

到目前为止它运作良好,但只有让我感到困惑的是,有些人告诉我,我必须对我包含的文件执行file_exists检查,这样我就可以将它包含得更安全,更快。

因此,考虑我想要包含的文件必须在每次包含它时,我是否真的必须在这种情况下使用file_exists?

(我知道这个问题就像新手问的那样。但是当我听到人们说file_exists可以让文件包含更快时,它会破坏我对PHP的一些了解。)

2 个答案:

答案 0 :(得分:1)

您需要包含的文件。 (大概无论如何......你正在使用require_once()。)如果文件不在那里,你的脚本将会失败。不需要所有这些检查和废话,只需进行require_once()调用。

另外,将路径添加到包含路径。让PHP搞清楚。无需编写代码来搜索文件。

答案 1 :(得分:0)

只需使用__autoload()函数并节省压力,因为如果您要求的那些文件不存在,那么您就不能获得那些红表错误报告