include_path详解

1.php默认的包含路径为 .;C:\php\pear 即为当前目录和C:\php\pear目录


2.如果设置ini_set("include_path", "");  则改变为默认们目录(即为上面的)

运行时的包含顺序:

1.如果为绝对路径  则直接包含, 并结束(找不到直接退出).

2.如果是是相对路径((形如./file, ../dir/file)  则跳过include_path的作用逻辑, 直接解析相对路径(找不到直接退出)

   注意:在使用相对路径的包含文件的情况下,如果一个文件被另一个文件所包含,则这个文件的”相对“则指的是包含他的那个文件

3.都不是以上两种情况

会根据include_path,和当前执行文件的path组成一个待选的目录列表 (即先include path  再当前文件所在的目录,注意:文件的真实目录

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

小结:

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

 

2. 因为目录相对路径的basedir, 永远都是当前工作路径, 如果要使用, 需要和实际部署路径相关, 所以实际使用的很少(当然, 也有借助chdir来完成的模块).

 

3. 在模块化的系统设计中, 一般应该在模块内, 通过获取模块的部署路径(dirname(__FILE__), php5.3以后更是提供了__DIR__常量)从而使用绝对路径.

原文地址:http://www.laruence.com/2010/05/04/1450.html

 

引用中的代码是设置include path的示例,它决定了PHP在包含文件时搜索的路径。在这个例子中,include path被设置为当前目录、../library/目录、./application/models/目录、./application/lib/目录和之前设置的include path的值。引用中提到,使用include_path和相对路径时,性能取决于搜索次数。最坏的情况下,如果有10个include_path,那么在找到要包含的文件之前可能需要尝试11次。因此,在可以使用绝对路径的情况下,最好使用绝对路径。而引用中说明了PHP在搜索include path时的具体过程,它会依次从待选列表中的路径开始尝试,直到成功包含文件或者遍历完所有待选路径。 综上所述,include path是设置PHP在包含文件时搜索的路径。通过设置include path,我们可以告诉PHP去哪里寻找我们要包含的文件。使用绝对路径可以提高性能,避免多次搜索。而当使用include_path和相对路径时,PHP会按照设定的路径顺序依次尝试,直到成功或者全部尝试完毕。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [PHP include_path设置](https://blog.csdn.net/sha_cq/article/details/7965015)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [include_path详解](https://blog.csdn.net/weixin_34128534/article/details/85523480)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值