PHP中多个文件包含的问题 (二)

  首先php中有常用的两种方法将文件包含:include和require,而include_once和require_once无非就是升级版而已,这里就不阐述他们的区别,我只提一下我遇到的问题:

  先看一下有这么几个文件,文件的层级结构如下:

  • Demo/
    • dir1
      • a.php
    • dir2
      • b.php
    • c.php

  请下面这个代码:

  看代码,好像是对的,对吧,填的都是相对路径,而且路径都对,是吧!!!但是然后访问c.php,会出错,错误信息如下:

Warning: require(./dir2/b.php): failed to open stream: No such file or directory in /path/Demo/c.php on line 2
Fatal error: require(): Failed opening required './dir2/b.php' (include_path='.:') in /path/Demo/c.php on line 2

  错误信息的意思是,c.php的第2行require语句出错了,说打开文件失败,

  注意:这里只是说打开文件失败,并没有说是c.php打开./dir2/b.php失败,其实是说./dir2/b.php打开../dir1/a.php失败。

  为什么会这么说呢?不信的话,我把b.php中包含a.php的路径修改一下。

   此时,访问c.php,并不会报错。

  这里就要好好探究一下require和include再讲一个文件包含就来,到底是做了什么?是将被包含的文件的内容copy到包含的文件中吗?

 

posted @ 2018-03-22 13:28  寻觅beyond  阅读(1111)  评论(0编辑  收藏  举报
返回顶部