PHP中include()与require()的区别说明


Posted in PHP onFebruary 14, 2017

require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

他们两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。

require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误

include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。

以下为补充:

1. include有返回值,而require没有。

2. include()包括并运行指定文件 在处理失败时include() 产生一个警告,被导入的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到include()语句的位置相同的变量范围。你可以导入同一个服务器中的静态页面。

3. include_once()的作用和include()是几乎相同的

唯一的差别在于include_once()会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入(这项功能有时候是很重要的,比方说要导入的里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个文件,在第二次导入的时候便会发生错误讯息,因为PHP不允许相同名称的函数被重复宣告第二次)。

4. require()会将目标文件的内容读入,并且把自己本身代换成这些读入的内容 在处理失败时require() 则导致一个致命错。

这个读入并且代换的动作是在PHP引擎编译你的程序代码的时候发生的,而不是发生在PHP引擎开始执行编译好的程序代码的时候(PHP 3.0引擎的工作方式是编译一行执行一行,但是到了PHP 4.0以后就有所改变了,PHP 4.0是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require()通常来导入静态的内容,而include()则适合用导入动态的程序代码。

5. 如同include_once(),require_once()会先检查目标文件的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。

6. require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require。

7. require通常放在PHP程序的最前面,PHP程序在执行前,就会先读入require所指定引入的文件,使它变成PHP程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

8. include一般是放在流程控制的处理部分中PHP程序网页在读到include的文件时,才将它读进来。这种方式可以把程序执行时的流程简单化。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
php 数组的一个悲剧?
May 11 PHP
php文件操作实例代码
May 10 PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 PHP
php中apc缓存使用示例
Dec 25 PHP
PHP入门之常量简介和系统常量
May 12 PHP
PHP判断浏览器、判断语言代码分享
Mar 05 PHP
php根据指定位置和长度获得子字符串的方法
Mar 17 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
PHP实现图片批量打包下载功能
Mar 01 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 19 PHP
php变量与字符串的增删改查操作示例
May 07 PHP
php中的抽象方法和抽象类
Feb 14 #PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 #PHP
PHP静态成员变量
Feb 14 #PHP
php中序列化与反序列化详解
Feb 13 #PHP
PHP最常用的正则表达式
Feb 13 #PHP
PHP面相对象中的重载与重写
Feb 13 #PHP
PHP中overload与override的区别
Feb 13 #PHP
You might like
新闻分类录入、显示系统
2006/10/09 PHP
PHP新手上路(十二)
2006/10/09 PHP
程序员编程十条戒律
2009/07/09 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
用javascript编写的第一人称射击游戏
2007/02/25 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
在JavaScript中call()与apply()区别
2016/01/22 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
vue-router单页面路由
2017/06/17 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
python列表去重的二种方法
2014/02/14 Python
Python常用模块介绍
2014/11/21 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
Python线性方程组求解运算示例
2018/01/17 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
简单叙述一下MYSQL的优化
2016/05/09 面试题
三个Unix的命令面试题
2015/04/12 面试题
材料物理专业求职信
2014/09/01 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
2015年化验员工作总结
2015/04/10 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书