我在类a.class.php的一个成员函数中引用require('b.php')没有问题,但是如果引用上层文件夹的文件require('../A/b.php')就报错 这是怎么回事?

解决方案 »

  1.   

    LZ,你的类文件又是哪个文件再引用??require的作用的路径是相对于你在引用class的文件路径而言的举个最简单的例子你测试下就可以了:
    a.php在根目录,语句是require("test/b.php");
    b.php在test目录,语句是require("../c.php");
    c.php与a.php同级,这种情况下是会报错的
      

  2.   

    如果只是包含上一级文件的文件b.php:用require('../b.php');
    用require('../A/b.php');这个的意思是包含上一级文件夹的文件夹A下的文件b.php!如果上级文件夹名是test. test下有A, B目录.
    a.class.php文件在/test/B/下
    用require('../A/b.php')这个意思就是包含 /test/A/b.php
      

  3.   

    目录关系式这样的:
    |- c.php
    |- Bfold - b.php
    |- Afold - a.class.php(里面的函数引用了../Bfold/b.php)也就是说 在c.php中new了class a.class ,而a.class.php的一个函数中require了Bfold文件夹下的b.php,这个require(../Bfold/b.php)报错,Warning: require(../Bfold/b.php) [function.require]: failed to open stream: No such file or directory 
      

  4.   

    因为你让服务器当前执行的是c.php文件,所以php解析的时候是把路径相对于c.php而言的,你试试把(../Bfold/b.php)改成(Bfold/b.php)看看,应该就不会报错了。