热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP中include和require的区别详解

require()语句的性能与include()相类似,都是包括并运行指定文件。除了处理失败的方式不同之外。require 在出错时产生 E_COMPILE_ERROR 级别的错误

require() 语句的性能与 include() 相类似,都是包括并运行指定文件。除了处理失败的方式不同之外。require 在出错时产生 E_COMPILE_ERROR 级别的错误,终止脚本运行;而include 只产生警告(E_WARNING),脚本会继续运行。

 


【1】include和require都是语句结构(并不是函数)!!!

 

在php官网手册上是划分到了流程控制,这两个语句结构不是函数。

详情可参考http://php.net/manual/zh/function.include.php

所以,它可以不加圆括号,直接加引号来包含文件。我习惯不加圆括号。

1 include '01_var.php';
2 或者
3 include('01_var.php');
4 或者
5 require '01_var.php';
6 或者
7 require('01_var.php');

 


2】对于处理失败的方式不同(最主要的区别)

 

对于引入的文件找不到情况下。(这里确保当前文件夹下面不存在no.php)

在01_include_require文件下编写如下代码:

include 'no.php';
echo 'End!';//会输出

  


 include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

1 require 'no.php';
2 echo 'End!';//不会输出

 

require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。


【3】对include和require引入文件的实质


对 include() 语句来说,在执行文件时每次都要进行读取和评估;
对于 require() 来说,文件只处理一次(实际上,文件内容替换 require() 语句)这就意味着如果可能执行多次的代码,则使用 require() 效率比较高。
另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用 include() 语句。



【4】include_once和require_once的作用


使用方法与不加后缀一样,加上_once后缀 意味着如果该文件中的代码已经被包括进来了,就不会再次包括。因为有些情况下,在脚本执行期间,同一个文件有可能包含超过一次的情况下,为了确保只包含一次,避免函数重定义,或者是变量的重新赋值的问题。

 


【5】使用场景



[1]如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。

[2]在框架复杂的 php 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。包含文件省去了大量的工作。例如在thinkphp框架index入口引入核心代码就是利用require引入的。

[3]require通常放在php脚本程序最前面,php再执行程序前,就会先读取require语句引入的文件,使之成为php脚本文件的一部分。

[4]include 通常用在流程控制的处理部分中,php 脚本在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。



推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 实现jqueryfileupload文件上传带进度条效果的方法
    jQueryFileUpload是一个Jquery图片上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • C++中的三角函数计算及其应用
    本文介绍了C++中的三角函数的计算方法和应用,包括计算余弦、正弦、正切值以及反三角函数求对应的弧度制角度的示例代码。代码中使用了C++的数学库和命名空间,通过赋值和输出语句实现了三角函数的计算和结果显示。通过学习本文,读者可以了解到C++中三角函数的基本用法和应用场景。 ... [详细]
  • 通过手机浏览器调用客户端QQ
    php教程|php手册thinkphp代码,代码示例,代码参考,php短信,数据库备份代码,令牌验证,去除代码中的空白和注释调用QQ客户端php教程-php手册可调用iosandr ... [详细]
  • ThinkPHP视频教程第二十五集:关联模型
    php教程|php手册thinkphp代码,代码示例,代码参考,php短信,数据库备份代码,令牌验证,去除代码中的空白和注释Thinkphpphp教程-php手册对学习Thinkp ... [详细]
  • 后端开发|php教程apache配置文件,thinkphp后端开发-php教程例如你的原路径是http:localhosttestindex.phpindexadd那么现在的地址是 ... [详细]
  • php 获取无限子文件,php快速无限遍历递归文件夹目录、子文件,支持绝对路径和相对路径,支持返回生成数组...
    支持无限极遍历子文件及文件夹,支持绝对路径和相对路径!函数说明:arrayglob(string$pattern[,int$flags]) ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • XmlHttpRequest.open()里的URL要怎么书写控制器里的代码如下:publicfunctioncheck(){ ... [详细]
author-avatar
tuigone
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有