PHP之include/require深入了解
程序员文章站
2022-04-30 17:45:24
...
PHP之include/require深入了解
include
1.先按加载文件的路径去找文件,如果只是一个文件名的话,则会按照include_path去查找
2.如果上述两个地址未找到,则会调用脚本文件所在目录和当前工作目录
3.如果最后仍未找到,则会发出一条警告。这点和require不同,后者会发出致命错误
4。如果定义路径。不管绝对路径和相对路径,则include_path会失效
require
1.和include方法相同,但是处理错误方法不同
2.require未加载文件时会导致脚本停止执行。
php中的include_path
php在遇到include或者require的时候
1.先判断是否为据对路径。
是->加载并结束
否->进入另一个逻辑(经过多次调用,宏展开后进入_php_stream_fopen_with_path)寻找此文件)
更详细案例说明参阅鸟哥文章:
http://www.laruence.com/2010/05/04/1450.html
结论是最好使用绝对路径
include和require的区别
include():
- include引入文件的时候,如果碰到错误,会给出提示(Warning),并继续运行下边的代码。
- 在执行文件时每次都要进行读取和评估
- 一般是放在流程控制的处理区段中
- PHP脚本文件在读到include()语句时,才将它包含的文件读取进来
- include()是有条件包含函数
require():
- require引入文件的时候,如果碰到错误,会给出提示(Fatal error),并停止运行下边的代码。
- 文件只处理一次(实际上,文件内容替换require()语句)
- 通常放在PHP脚本程序的最前面
- PHP程序在执行前,就会先读入require()语句所引入的文件,使它变成PHP脚本文件的一部分。
- require()则是无条件包含函数
//变量$ok无论是何值,1.php都会被包含进来[在PHP程序执行前,就读入require()语句]if($ok){
require'1.php';
}
//变量$ok为真,则包含文件2.phpif($ok){
include'2.php';
}
?>
结论
- incluce在用到时加载
- require在一开始就加载
- _once后缀表示已加载的不加载
- 如果可能执行多次的代码,则使用require()效率比较高
- 如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句
以上就介绍了PHP之include/require深入了解,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。