php关于include_once与include之间的区别详解
include和require区别
当要包含的文件不存在时,include产生一个警告(Warning),该语句后面的程序会继续执行;而 require则导致一个致命错误(Fatal error),程序就此终止。
include_once和require_once
应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。
1.incluce在用到时加载,这个函式一般是放在流程控制的处理区段中
2.require在一开始就加载,这个函式通常放在 PHP 程式的最前面
3._once后缀表示已加载的不加载
关于这个问题网上一搜一大把的,include和include_once没什么大研究,区别就是include不管你之前有没有引入过该文件,都仍然引入,include_once则检查文件有没有已经在前面引入过了,如果有了就不再引入了
一般推荐用require_once,所以建议楼主多查查include和require的区别,网上很多。这里简单说两个:
incloude引入的文件发送错误或文件不存在,include会发出一条警告并继续执行程序,而require则会产生致命错误并终止程序。
require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。require_once()函数的作用和 require() 是几乎相同的
include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。clude_once()函数的作用和 include() 是几乎相同的
require_once的作用是会检查之前是否加载过该文件,如果没有加载则加载 如果加载过就不再次加载。比如某文件定义了一个类型 如果两次加载该文件会出现错误,require_once会避免这个错误.
自从认识include和include_once的区别后 一直使用include_once ,认为它只加载一次,可以避免重复加载,而且貌似自己也无法很好的确定是否已经重复加载,原来自己一直都是错误的。
其实也有好处吧 如果项目是几个人开发的话,include_once倒也比较好的
include_once执行顺序
尝试解析文件的绝对路径, 如果能解析成功, 则检查EG(included_files), 存在则返回, 不存在继续
打开文件, 得到文件的打开路径(opened path)
拿opened path去EG(included_files)查找, 是否存在, 如果存在则返回, 不存在继续
编译文件(compile_file
最近关于apc.include_once_override的去留, 我们做了几次讨论, 这个APC的配置项一直一来就没有被很好的实现过.
在这里, 我想和大家在此分享下, 这个问题的原因, 以及对我们的一些启示.
关于使用include还是include_once(以下,都包含require_once), 这个讨论很长了, 结论也一直有, 就是尽量使用include, 而不是include_once, 以前最多的理由的是, include_once需要查询一遍已加载的文件列表, 确认是否存在, 然后再加载.
诚然, 这个理由是对的, 不过, 我今天要说的, 是另外一个的原因.
我们知道, PHP去判断一个文件是否被加载, 是需要得到这个文件的opened_path的, 意思是说, 比如:
以上就是php关于include_once与include之间的区别详解的详细内容,更多请关注其它相关文章!
下一篇: MySQL 文本文件的导入导出数据的方法
推荐阅读
-
php 去除html标记--strip_tags与htmlspecialchars的区别详解
-
PHP flush()与ob_flush()的区别详解
-
深入掌握include_once与require_once的区别
-
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
-
php中关于self和static代表本类的区别详解
-
php中 include 、include_once、require、require_once4个语言结构的含义和区别
-
PHP中define() 与 const定义常量的区别详解
-
php中const与define的使用区别 详解
-
PHP中include()与require()的区别
-
关于keils中#include后的双引号““与尖引号<>的区别