require_once require include include_once 方法的区别
对于包含文件来说,如果只是使用框架来说的话,应该会很少碰到,因为框架底层对于文件的引用等做了很好的封装,这也导致了我们对于这块知识理解的欠缺。
为什么要使用类似引入文件的函数?
在一个PHP函数的生命周期中(就是一个程序执行的过程,比如echo 一个字符串),可能会用到很多个文件,这些个文件不可能都写在一个文件中,这样极不好管理,也不利于维护。
也就产生了MVC框架,使得编码可以结构化,利于管理和维护。
最简单的一个例子:
单一入口:index.php + 随便一个控制器 + 随便一个视图 。
就这样一个最简单的过程,就引用了3个文件,在实际运行中,文件数远远大于了这个数。
关于引用文件来说,用到的也是这些方法。
这些函数有什么作用呢?
引入第三方库,等等..
不过现在已经使用Composer管理了,引入一次就好了。
下面主要是比较他们的区别。
1:include()和require()的区别
1:遇到错误,[引入路径出错,没有找到引用文件等]
include()引入文件时,遇到错误会提示错误并继续执行;
require()引入文件时,遇到错误时也提示错误但会终止程序的运行。
2:使用位置
require()语句一般放在脚本页面的最前面,在执行前,就先读入require()引入的文件,一旦出现错误,则立即退出程序,用于必须引入文件。、
include()语句一般在用到时才引入,所以通常是放在流程控制的处理区段中,脚本在执行到它时,才会将文件包含进来
3:使用原则
即require()是预加载机制,位置在脚本最前面,一开始就引入所有可能用到的文件;include()是即用即加载,位置灵活
2: include()、require()和include_once()、require_once()的区别
1: include_once()、require_once() 相比于 include() 、require() 区别
include()、require()执行即包含文件,不会对引入的文件进行比较判断,可能会出现重复包含的情况;
而include_once()、require_once()在包含时会先判断文件是否已经被包含, 如果已经包含过了,如果已包含,则不再包含文件,这样的引入文件方式即可以节省资源,又可避免重复定义的错误
3:ps
虽然在 include_once() 和 require_once() 可以替你检查文件是否已经包含过,但是也不能因为这样就不检查或者直接使用函数引入,这种偷懒的心理是不对的,
如果你都不知道在你的程序里面引用了文件有多少次,那么之后出了问题去排查,实有多么困难呢?
会在之后学习中,如果在遇到问题,补充此文章内容。