php中require和require_once的区别说明


Posted in PHP onFebruary 27, 2014

include() 和require()   :语句包括并运行指定文件。
include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用 require()。include() 就不是这样,脚本会继续运行。

require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。
include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。

1.include() 函数会将指定的档案读入并且执行里面的程序。

例如:include('/home/me/myfile');

被导入的档案中的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到 include() 函数的位置相同的变量范围(variable scope)。你可以导入同一个服务器中的静态档案,甚至可以通过合并使用 include() 与 fopen() 函数来导入其它服务器上面的档案。

2.include_once()函数的作用和 include() 是几乎相同的

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

3.require()函数会将目标档案的内容读入,并且把自己本身代换成这些读入的内容。

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

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

PHP 相关文章推荐
一个简单的PHP入门源程序
Oct 09 PHP
在PHP3中实现SESSION的功能(二)
Oct 09 PHP
PHP函数常用用法小结
Feb 08 PHP
php date与gmdate的获取日期的区别
Feb 08 PHP
fleaphp常用方法分页之Pager使用方法
Apr 23 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
高性能PHP框架Symfony2经典入门教程
Jul 08 PHP
php中用memcached实现页面防刷新功能
Aug 19 PHP
weiphp微信公众平台授权设置
Jan 04 PHP
全面了解PHP中的全局变量
Jun 17 PHP
php 处理png图片白色背景色改为透明色的实例代码
Dec 10 PHP
php更新修改excel中的内容实例代码
Feb 26 #PHP
php获取文件大小的方法
Feb 26 #PHP
PHP批量上传图片的具体实现方法介绍.
Feb 26 #PHP
php把session写入数据库示例
Feb 26 #PHP
php操作mysql数据库的基本类代码
Feb 25 #PHP
php获取bing每日壁纸示例分享
Feb 25 #PHP
php异常处理使用示例
Feb 25 #PHP
You might like
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
Prototype 工具函数 学习
2009/07/23 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
python列表操作使用示例分享
2014/02/21 Python
详解Python import方法引入模块的实例
2017/08/02 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
全球最大的服务市场:Fiverr
2017/01/03 全球购物
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
总会计师岗位职责
2014/02/19 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android