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

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

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()会先检查目标文件的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113613.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • visual studio 2013安装教程_Visual Studio下载

    visual studio 2013安装教程_Visual Studio下载C语言学习VisualStudio2013下载及其安装VisualStudio2013官方旗舰版下载地址:http://download.microsoft.com/download/B/1/9/B1932B8C-1046-4773-A1DD-4AB5C0978637/vs2013.2_ult_chs.iso下载完之后:①下载后得到的是ISO文件,直接解压缩或用虚拟光驱加载运行都可以;②这里直接解压,然后双击“vs_ultimate.exe”开始安装;③设置好安装路径后…

    2022年9月6日
    2
  • linux_驱动_IIC_BLSP

    linux_驱动_IIC_BLSP原文链接:http://huaqianlee.github.io/2016/04/27/Uav/Qualcomm-uav-blsp-port/

    2022年10月19日
    0
  • 聚类方法 学习总结

    聚类方法 学习总结1.重点归纳1)聚类的核心概念是相似度(similarity)或距离(distance),有多种相似度或距离的定义。因为相似度直接影响聚类的结果,所以其选择是聚类的根本问题。(1)闵可夫斯基距离(Minkowskidistince),p=2时为欧氏距离,p=1时为曼哈顿距离。(2)马哈拉诺比斯距离(马氏距离)(3)相关系数(4)余弦相似度2)类与类之间的距离(1…

    2022年8月30日
    4
  • java jersey,java Jersey

    java jersey,java Jersey场景:用Jersey构建RESTful服务3-JAVA对象转成JSON输出用Jersey构建RESTful服务3–JAVA对象转成JSON输出一、总体说明XML和JSON是最为常用的数据交换格式。本例子演示如何将java对象,转成JSON输出。二、流程1.在上文项目中,在“com.waylau.rest.resources.UserResource“中增加代码,代码如下:@GET@Path(…

    2022年7月27日
    4
  • EVE模拟器的安装使用

    EVE模拟器的安装使用文章目录模拟器的安装一、为什么要使用模拟器?二、模拟环境要求1、硬件配置要求:2、系统配置要求三、模拟器的配置流程1、安装vmwareworkstation虚拟软件2、下载eve工具3、安装搜狗浏览器4、安装EVE工具包5、打开EVE虚拟机6、测试eve是否能正常使用模拟器的使用模拟器的安装一、为什么要使用模拟器?以前学习网络,没有一个好的模拟器,大家都用真实的设备做实验,但是效率太低了,而且每次学习新的内容需要自己插拔网线,搭建新的拓扑(或者使用万能拓扑),这样学习的效率十分低下,而且十分困难,导致

    2022年6月12日
    32
  • virtualbox vboxmanage命令[通俗易懂]

    virtualbox vboxmanage命令[通俗易懂]查看当前虚拟机VBxoManagelistvms查看当前正在运行的虚拟机VBoxManagelistrunningvms启动虚拟机VBoxManagestartvm虚拟机名无前端图形界面方式启动虚拟机VBoxManagestartvm虚拟机名–typeheadless使用VRDP方式通过命令行启动虚拟机:(33…

    2022年5月2日
    97

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号