2018/03/09 每日一学PHP 之 require_once require include include_once 包含文件的区别
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() 可以替你检查文件是否已经包含过,但是也不能因为这样就不检查或者直接使用函数引入,这种偷懒的心理是不对的,
如果你都不知道在你的程序里面引用了文件有多少次,那么之后出了问题去排查,实有多么困难呢?
会在之后学习中,如果在遇到问题,补充此文章内容。
2018/03/09 每日一学PHP 之 require_once require include include_once 包含文件的区别的更多相关文章
- 2018/03/09 每日一个Linux命令 之 chgrp/chown
每日一个Linux命令 2018-03-09 Linux 命令 chgrp/chown chgrp [-参数] [文件或者目录] chown [-参数] [文件所有者]:[文件所属群组] [文件或者目 ...
- 2018/03/10 每日一学PHP 之 修饰符 public/private/protected
对于面向对象 修饰符的使用是我们最常用,也是很容易忽略的小细节. 对于编程来说,把握好每一个小细节,就能构造出漂亮,优雅的程序. public 使用最多的修饰符,公共方法,允许所有访问,就像一个公交车 ...
- 2018/03/08 每日一学PHP 之 常量defind 和 const区别
常量defind 和 const区别 什么是常量? 如字面理解的,在脚本执行期间不可改变的的量. 定义一个常量应该注意的事项? 1:常量默认大小写敏感,错误的大小写不会被识别为常量. 2:常量只能是标 ...
- 2018/03/31 每日一个Linux命令 之 date
date 命令主要用于查看和修改时间和时区 -- 这里主要学习基本的查看和设置时间和时区的方法. 直接显示日期 date '+%D' 效果 vagrant@hong:~$ date '+%D' 03/ ...
- 2018/03/27 每日一个Linux命令 之 cron
Cron 用于配置定时任务. -- 环境为 Ubuntu16-04 -- 先说说怎么配置一个简单的定时任务.直观的可以看到效果. 之前在网上查找资料,对Shell编程不熟悉的实在是很头疼,走了不少弯路 ...
- 2018/03/08 每日一个Linux命令 之 chattr/lsattr
每日一个Linux命令 2018-03-08 Linux 命令 chattr/lsattr chattr [-参数] [+/-属性] [文件或者目录] 经过今天没有对铃,粥熬糊了,我就知道...... ...
- 2018/03/07 每日一个Linux命令 之 cat
每日一个Linux命令 2018-03-07 Linux 命令 cat cat [-参数] fileName 在之前的Linux使用中 cat 命令一直作为文本输出指令来使用,很少可以深入学习的该命令 ...
- 2018/03/11 每日一个Linux命令 之 top
每日一个Linux命令 之 top 今天在公司测试服务器上跑了一个我写的功能[本地测试过的],但是不知道怎么跑了个无限死循环出来,一个文件的体积在不停的变大,如果不管的话这能行? 上去一看,PHP ...
- 2018/03/10 每日一个Linux命令 之 find
每日一个Linux命令 2018-03-10 Linux 命令 find find [查找目录] [定义条件] 今天很累了,本来不想写了,但想到自己订的学习计划必须坚持下去,每天完成. fin ...
随机推荐
- 【代码审计】iZhanCMS_v2.1 后台存在多个SQL注入漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
- ubuntu 上安装vnc server
Ubuntu下设置VNCServer Virtual Network Computing(VNC)是进行远程桌面控制的一个软件.客户端的键盘输入和鼠标操作通过网络传输到远程服务器,控制服务器的操作 ...
- DOM的学习
今天学习了DOM,感觉学习起来真的没那么简单啦,这不是一个好现象啊,只有依靠自己大补课,嘿嘿,具体的总结了一下,今天学习的其实并不多,仅仅学习了不同的节点类型,但是知识还是蛮碎的,要一点一点的总结,昨 ...
- Android学习之RadioGroup和RadioButton
转载自:http://my.oschina.net/amigos/blog/59261 实现RadioButton由两部分组成,也就是RadioButton和RadioGroup配合使用.RadioG ...
- HipHop的原理
HipHop的原理 HipHop将PHP代码转换为高度优化的C++代码,然后再用g++编译器编译.它可以保持语义等效地执行源代码,但为了提高性能,牺牲了一些很少用到的特性,比如eval(). HipH ...
- PV&UV&IP之间的区别和联系
PV PV是网站分析的一个术语,用于衡量网站用户访问的网页的数量.对于广告投入商来说,PV值可以预期它可以带来多少收入广告,一般来说,OV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量 ...
- 题目1456:胜利大逃亡(广度优先搜索BFS)
题目链接:http://ac.jobdu.com/problem.php?pid=1456 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...
- LeetCode 43 Multiply Strings(字符串相乘)
题目链接: https://leetcode.com/problems/multiply-strings/?tab=Description 求解大数相乘问题 按照上图所示,进行嵌套循环计算 ...
- C语言程序设计--宏和预处理
C语言宏 宏定义常量 #include <stdio.h> #define SIZE 100 #define BANNER "WARNING:" int main(vo ...
- PCB器件重叠报错
这几天画一个板子,,有一层器件是可以重叠的, 但是怎么修改规则也没有效果, 尝试把那个检测规则给删除,但是根本删除不掉! 后来发现 直接在规则的 这个选项直接把勾选去掉就可以了!