我的文件路径如>>
/config.php
/fold_1/fold_2/functions.php
/fold_1/myfile.php
functions.php包含>>
include_once("../../config.php");
function addition($x,$y){return($x+$y);}
function substraction($x,$y){return($x-$y);}
myfile.php包含>>
include_once("fold_2/functions.php");
call addition(2,3);
但它会发出像>>一样的警告
include_once(../../config.php): failed to open stream: No such file or
directory
我知道原因就像当我在function.php
中包含myfile.php
它将function.php
的所有代码替换为myfile.php
然后运行function.php
的代码所以它无法在config.php
找到../../config.php
文件
但我不知道有没有任何解决方案(解决方案意味着改变php.ini或类似的变量值)来克服这个问题所以它可以先运行functions.php
的代码,然后它将映射到myfile.php
尝试使用这样:
include_once $_SERVER['DOCUMENT_ROOT']. '/path/to/config.php';
有时PHP和服务器更喜欢完整的绝对路径而不是../../
- 我通常使用$_SERVER
修复