我有一个目录/文件树,如下所示:
index.php
/frame/main_class.php
/frame/func/function_1.php
/frame/func/function_1.php
/cfg/config.php
//index.php
require('frame/main_class.php');
new main_class;
//frame/main_class.php
class main_class{
public function __construct(){
require('func/function_1.php');
require('func/function_2.php');
require('cfg/config.php');
}
}
奇怪的是它有效。也许已经晚了,我有一个愚蠢的时刻,但不应该“要求('cfg/config');” 写成“require('../cfg/config.php');” ?
如果它使用的是 index.php 的根目录,那么 "require('func/function_1.php');" 不应该工作,对吧?
我对远程服务器进行了四次检查,认为可能有一两个杂散文件……没有。这两个要求语句如何具有不同的基本路径......?
有谁知道可能导致这种情况发生的代码片段?我正在使用一些 $_SERVER 变量,但我似乎没有改变它们中的任何一个......!?
“文件是根据给定的文件路径包含的,如果没有给出,则根据指定的 include_path。如果在 include_path 中找不到文件,include 最终会在失败之前检查调用脚本自己的目录和当前工作目录。 " 明确地说include dirname(__FILE__) . '/path/to/file.php';
可以避免这种混淆。– DCoder