如何包含那些内部包含其他文件的文件?



这是我的文件结构

+-- 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.phpremove 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';

相关内容

最新更新