首页 > 后端开发 > php教程 > 关于PHP的include

关于PHP的include

WBOY
发布: 2016-06-23 14:30:58
原创
939 人浏览过

测试环境:Windows 2003 + PHP5.3.5 +Apache 2.2.19.0

php.ini中的include_path设置如下:include_path="D:\php_5.3.5\pear;F:\PHP\Lib;"   注意 , 没有 .  include_path中的.代表当前工作目录

 

include第一次找到某文件后,会缓存结果。下一次include相同的路径时,只取缓存结果而不会多重查找,这就导致了我们移除某文件后可能短暂的时间内include会报错(因为include机制发现缓存结果的路径不存在,不会往下一重查找而是报错)。所以测试的时候需要include前面加clearstatcache(true);或者对文件进行改名、删除等操作以后马上重启apache,以强制每次include都多重查找。

ps:include的缓存机制具体说明:include会按顺序进行多重查找,但如果发现某一重有缓存,就会立刻跳出查找,不管那一重的缓存结果路径是否存在。 也就是说假如第一重的文件存在,我们却将其删除,则在include缓存有效期间会造成include错误。假如第一重的文件不存在,第二重的文件存在,我们建立了第一重文件,则会马上生效,不受include缓存影响

 

1.include('2.php'); 

注意,'2.php'不是按相对路径开始查找,其多重查找顺序如下:

 (1) 如果是绝对路径,则直接查找绝对路径是否存在

 (2)首先从php.ini中设置的include_path目录中查找文件(遍历include_path中的每个目录)

 (3)然后从调用此语句的文件所属目录(__DIR__)查找文件

 (4)最后从当前工作目录(getcwd())中查找文件


 

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板