我的项目根目录下有一个u名字的目录其中包含了u1.php,u2.php 两个文件,另外分别还有c目录和s目录;其中u1.php文件中使用include_once函数包含了u2.php这个文件,现在在s目录下有一个s.php文件使用include_once函数引用了u1.php的文件,这样在s.php中可以访问到u1.php和u2.php两个中的变量和类,可是以同样的方式在c目录下有一个c.php文件也使用include_once函数引用了u1.php,可是在c.php中访问u1.php中的变量数据均可,访问u2.php却无法得到,这是为什么,改怎么解决啊。
急救,在线等.

解决方案 »

  1.   

    include_once(S_ROOT.'./u/u1.php');
    这样的方式,S_ROOT是程序计算的项目根目录的物理路径
      

  2.   

    u1.php不用include_once而用include试一下
      

  3.   

    u1中include u2时也使用绝对路径
      

  4.   


    是的,include_once(S_ROOT.'./u/u2.php'); 这样的方式引用的
      

  5.   

    检查include时是否在函数中,如果是,则目标文件中所声明变量作用域都在函数中终极必杀,在u1 u2等文件中加入echo判断文件是否被include以及何时include
      

  6.   

    是这个意思吗?/u/u1.php
    /u/u2.php/u/s/s.php 可以访问/u/c/c.php 不可以访问
      

  7.   

    估计原因在你的S_ROOT这个上面。
    不同包含的时候,打印出来看看。
    是不同包含的时候S_ROOT的值有所改变。
    也就是你程序里不同情况下,计算S_ROOT错误。但你说:
    在c.php中访问u1.php中的变量数据均可,访问u2.php却无法得到那在你开启了错误显示的情况下,既然在C中可以得到U1,又没有抛出错误(就说明包含的路径是正确的),却无法得到U2,那就只有检查你C和U2的程序了。