c.php  include 了  a.php       然后在a.php里 又   include('../../b.php');      b.php所在目录比c高两层    现在是如果a 独立引用b就错误了1, c引用a  a里引用b 这个关系必须存在, 同时还得让a能直接独立引用b。 这个是一套,不能分开。所以相对路径就搞不定了,dirname(__FILE__)   这个查了半天资料但是没一个正确的写法。问题补充:忘记说了 b比a高三层  a直接引b得../../../ 才能成功

解决方案 »

  1.   

    dirname(__FILE__) 这个是得到当前脚本的绝对路径。php的路径包含是与其它不同的,a包b,b包c,最终所有的相对路径都是以 a 文件为目标。你这样的包含是不建议使用的正确做法:在入口定义项目的root,然后所有包含都以 root . '/include' 这样的绝对路径来包含。
      

  2.   

    那你就使用绝对路径就是了
    b比a高三层 a直接引b
    include dirname(__FILE__). '/../../../b.php';
      

  3.   

    dirname(__FILE__)就是返回当前文件所在目录的路径所以a里面引用b就用下面:
    dirname(dirname(dirname(__FILE__)))."/b.php"
    c里面引用a就用如下:
    dirname(__FILE__).'/a.php'