这是我的文件结构
+-- config
| +-- config1.php
| +-- config2.php
+-- test
| +-- test1
| +-- innerRunner.php
+-- outerRunner.php
这是config1.php
<?php
require_once 'config/config2.php';
这是config2.php
<?php
function runConfig2(){
echo "control in config2";
}
runConfig2();
这是innerRunner.php
<?php
require_once("../../config/config1.php");
这是outerRunner.php
<?php
require_once("config/config1.php");
当我执行outerRunner.php然后一切工作正常,但当我运行innerRunner.php显示错误
Warning: require_once(config/config2.php): Failed to open stream: No such file or directory in /var/www/config/config1.php on line 2
Fatal error: Uncaught Error: Failed opening required 'config/config2.php' (include_path='.:/usr/local/lib/php') in /var/www/config/config1.php:2 Stack trace: #0 /var/www/test/test1/innerRunner.php(2): require_once() #1 {main} thrown in /var/www/config/config1.php on line 2
有谁能帮我一下吗?下面是沙盒的链接:链接PS:我不能在config1或config2做任何改变,我需要做的只有innerRunner.php。
in file configconfig1.php
remove directoryconfig
<?php
require_once './config2.php';
你可以在innerRunner.php
<?php
#change the current working dir
chdir('/var/www');
require_once("config/config1.php");
#change it back to the current dir
chdir(__DIR__);
但是这样做真的是一个糟糕的方法。
通常你应该首先做require_once 'config2.php';
(config1.php)
。
没有真正的理由在那里做require_once 'config/config2.php';
。