/a/a.php
$a = 100;
$b = 100;
/b/b.php
require_once '../a/a.php';
function sum($a,$b)
{
return $a * $b;
}
$c = sum($a,$b);
echo $c;
此时b.php会输出:10000
但,若通过另一文件夹c下c.php引用b.php并输出$c:
/c/c.php
require_once '../b/b.php';
echo $c;
此时会报出:
Warning: require_once(../a/a.php): failed to open stream: No such file or directory in *\b\b.php on line 1
警告,并且c.php无输出。
这是由于多层文件引用相对位置不确定造成的,通过使用:
dirname(__FILE__)
定位文件自身所在文件夹来确定相对位置
将/b/b.php改为:
require_once dirname(__FILE__) . '/../a/a.php';
function sum($a,$b)
{
return $a * $b;
}
$c = sum($a,$b);
echo $c;
小结:PHP访问不同目录下文件,尽量在相对路径前添加dirname(__FILE__) or __DIR__
进行定位。