php include path作用,PHP中的include_path 作用原理顺序

include_path定义的是一个全局的路径搜索范围

就象DOS下的path.在用include()时,它是从当前目录找起,如果当前目录 没有,才按照include_path设置的找。

你比如说我要包含一个/usr/web/hqywork/doc/1.php的文件

我的当前目录比如说是:/usr/web/hqywork

我可以用:include(‘/usr/web/hqywork/doc/1.php’);//用绝对路径

也可以用:include(‘doc/1.php’); //用相对路径。

PHP在遇到require(_once)/include(_once)的指令的时候, 首先会做如下的判断:

1. 要包含的文件路径是绝对路径么?

2.  如果是, 则直接包含, 并结束.

3.  如果不是, 进入另外的逻辑(经过多次调用, 宏展开后进入_php_stream_fopen_with_path)寻找此文件.

接下来, 在_php_stream_fopen_with_path中, 会做如下判断

1. 要包含的文件路径是相对路径么(形如./file, ../dir/file, 以下用”目录相对路径代替”)?

2.  如果是, 则跳过include_path的作用逻辑, 直接解析相对路径(随后单独介绍).

会根据include_path,和当前执行文件的path组成一个待选的目录列表

然后, 依次从待选列表头部开始, 根据DEFAULT_DIR_SEPARATOR(本文的环境是”:”)取出待选列表中的一个路径, 然后把要包含的文件名附加在这个路径后面, 进行尝试. 如果成功包含, 则返回, 否则继续下一个待选路径.

因为使用include_path和相对路径的情况下, 性能会和寻找的次数有关, 最坏的情况下, 如果你有10个include_path, 那么最多可能会重试11次才能找到要包含的文件,

所以, 在能使用绝对路径的情况下最好使用绝对

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值