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到包含的文件中吗?

 

转载于:https://www.cnblogs.com/-beyond/p/8623067.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值