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
php代码把全角数字转为半角数字
Dec 10 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
php下保存远程图片到本地的办法
Aug 08 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
Laravel 5框架学习之子视图和表单复用
Apr 09 PHP
php结合安卓客户端实现查询交互实例
May 05 PHP
php简单实现批量上传图片的方法
May 09 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
详解Laravel服务容器的绑定与解析
Nov 05 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实现合并discuz用户
2015/08/05 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
js+FSO遍历文件夹下文件并显示
2007/03/07 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
python关键字and和or用法实例
2015/05/28 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Django框架模板的使用方法示例
2019/05/25 Python
python实现的Iou与Giou代码
2020/01/18 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
初中物理教学反思
2014/01/14 职场文书
妇产医师自荐信
2014/01/29 职场文书
给学校建议书范文
2014/05/13 职场文书
会计学毕业生求职信
2014/06/25 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
大学生入党自传2015
2015/06/26 职场文书
行政处罚告知书
2015/07/01 职场文书