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扩展图文教程
Dec 12 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
Apr 28 PHP
php 变量未定义等错误的解决方法
Jan 12 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
thinkphp如何获取客户端IP
Nov 03 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
Mar 21 PHP
微信利用PHP创建自定义菜单的方法
Aug 01 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
Oct 13 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
Oct 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注销代码(session注销)
2012/05/31 PHP
PHP根据IP判断地区名信息的示例代码
2014/03/03 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
php文件缓存类汇总
2014/11/21 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
在vue-cli中组件通信的方法
2017/12/16 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
中国领先的专业演出票务网:永乐票务
2016/08/29 全球购物
本科生个人求职自荐信
2013/09/26 职场文书
会计实训报告范文
2014/11/04 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
使用Python获取字典键对应值的方法
2022/04/26 Python
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL