PHP中的include() 、require()语句包含并运行指定文件。

这两结构在包含文件上完全一样,唯一的区别是对于错误的处理。require()语句在遇到包含文件不存在,或是出错的时候,就停止即行,并报错。include()则继续即行。

例如:hello.php 不存在时:

include(‘hello.php’);
echo ‘include test final!’;//include报错,但是会继续执行,显示:include test final!
require(‘hello.php’);
echo ‘require test final!’;//require报错,停止代码的执行。

总结1:include() 产生一个警告,而require() 则导致一个致命错误

换句话说,如果你想在丢失文件时停止处理页面,那就别犹豫了,用 require() 吧。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。
就是说再解析程序时即读取require的文件,如果不能读取到被require的文件,就不能继续运行。所以,不被正确包含就会导致程序的文件,用require比较好。可能效率上也略微高点。

注意:require() 无论如何都会包含文件,而include() 可以有选择地包含:

<?php if(FALSE){ require('1.php'); } if(FALSE){ include('2.php'); } ?>

上面的代码中:1.php 一定会被包含,而 2.php 一定不会被包含。

总结2:二种方式提供不同的使用弹性:
require 的使用方法如 require(“MyRequireFile.php”); 。这个函式通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的一部份。
include 使用方法如 include(“MyIncludeFile.php”); 。这个函式一般是放在流程控制的处理区段中。PHP 程式网页在读到 include 的档案时,才将它读进来。这种方式,可以把程式执行时的流程简单化。

一、使用语法和简介

1、include()
语法:include(/path/to/filename)
include()语句将在其被调用的位置处包含一个文件。包含一个文件与在该语句所在位置复制制定文件的数据具有相同内容的效果。
使用include()时可以忽略括号。

可以根据条件来执行include()语句。在条件语句中使用include()有个怪现象,它必须包围在语句块大括号中,或者用其他语句包围符括起来。

2、include_once()
语法:include_once(filename)

include_once() 语句在脚本执行期间包含并运行指定文件。此行为和 include() 语句类似,唯一区别是include_once()会先判断一下这个文件在之前是否已经被包含过,如已经包含,则忽略本次包含。
include_once() 应该用于嵌套包含的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。

小结:include_once()函数的作用与include相同,不过它会首先验证是否已经包含了该文件。如果已经包含,则不再执行include_once。否则,则必须包含该文件。除了这一点与include完全相同。

3、require()
语法:require(filename)
require()在很大程度上与include相同,都是将一个模板文件包含到require调用坐在的位置。
require和include之间有两点重要的区别。首先,无论require的位置如何,制定文件都将包含到出现require的脚本中。例如,即使require放在计算结果为假的if语句中,依然会包含指定文件。
第二个重要的区别是:require出错时,脚本将停止运行,而在使用include的情况下,脚本将继续执行。

4、require_once()
语法:require_once(filename)
require_once() 语句在脚本执行期间包含并运行指定文件。此行为和 require() 语句类似,唯一区别是require_once()会先判断一下这个文件在之前是否已经被包含过,如已经包含,则忽略本次包含。
require_once() 应该用于嵌套包含的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。

小结:随着网站越来越大,可能会出现重复包含某些文件。这也许不是问题,但又是修改了所包含文件的变量后,却由于后面再次包含原来的文件而被覆盖,可能不希望出现这种情况。还可能出现另一个问题,即所包含文件中函数名的冲突。使用require_once就可以解决这些问题。
require_once函数确保文件只包含一次。在遇到require_once后,后面再试图包含相同的文件时将被忽略。

二、区别总结

1、include()与require()语句区别。
两者区别:这两种结构除了在如何处理失败之外完全一样。
include() 产生一个警告,脚本会继续运行。
require() 则导致一个致命错误,脚本会停止运行。

换句话说,如果想在遇到丢失文件或遇到错误时停止处理页面就用 require()。如果想在遇到错误时继续处理页面就用 include()。
注意在 PHP 4.3.5 之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。

2、include_once()、require_once()与include()、require()的区别
include_once()和require_once()一样,应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。这就是include_once()和require_once()与include() 和require()的主要区别。

三、需要注意的问题

1.路径问题
特别是嵌套包含的时候,一定得注意包含文件的路径。
比如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一个文件夹下,这个时候往往很容易出错误。
解决方案:可以使用 dirname(FILE) 语句,这句的意思是获得当前脚本的绝对路径。如:require_once(dirname(FILE).’/config.php’);

2.效率问题
include_once(),require_once(),与include(),require()比较,效率要低一些,因为他们至少得先判断一下这个文件是否已包含。这一问题在PHP5版本有很大改进,不过效率还是有差别。

PHP包含文件函数include、include_once、require、require_once区别和总结相关推荐

  1. PHP包含文件函数include、include_once、require、require_once区别

    PHP的4个文件包含函数区别 include.include_once.require.require_once include() .require()语句包含并运行指定文件. 结构包含上基本一样, ...

  2. include,include_once,require,require_once的区别

    include() .require()语句包含并运行指定文件.这两结构在包含文件上完全一样,唯一的区别是对于错误的处理.require()语句在遇到包含文件不存在,或是出错的时候,就停止即行,并报错 ...

  3. php中引用另一个php文件( include 和 require 语句区别)

    PHP include 和 require 语句 通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前). include 和 req ...

  4. include,require,include_once,require_once区别

    include和require的作用是相同的,唯一的不同是PHP在遇到include命令的时候必须重新解释一次.如果在同一个PHP页面中出现10此include命令,它便会重新解释10次.不过当PHP ...

  5. include(),include_once(),requice(),require_once()的区别

    include(),include_once(),requice(),require_once()的区别 发布时间:2011-07-23 发布人:张东哲 来源:上海PHP培训 点击:165次   分享 ...

  6. PHP中include和require的区别详解

    PHP中include和require的区别详解 1.概要  require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每 ...

  7. include和require的区别

    细节决定成败! 1.引用文件方式 对include()来说,在include()执行时文件每次都要进行读取和评估:而对于require()来说,文件只处理一次(实际上,文件内容替换了require() ...

  8. php include 和require的区别与转码

    php include 和require的区别 相同点:include和require 都能把另外一个文件包含到当前文件中.  不同点:使用include时,当包含的文件不存在时,系统会报出警告级别的 ...

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

    require 的使用方法如 require("MyRequireFile.php"); .这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require ...

  10. php中的require(),PHP中include()与require()的区别说明

    require的使用方法如 require("MyRequireFile.php"); .这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require ...

最新文章

  1. python自动化办公入门书籍推荐-好书推荐 | Python 如此神奇,让繁琐工作自动化...
  2. 学python能赚什么外卖-python实现外卖信息管理系统
  3. Period_JAVA
  4. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysq
  5. 软件开发最重要的十件事
  6. Andlinux 使用记录(转)
  7. 【渝粤教育】电大中专学前儿童科学教育 (14)作业 题库
  8. 【Windows】DOS的常用命令
  9. JSJ——主数据类型和引用
  10. window安装python27和配置环境变量
  11. Unity-MD5加密
  12. 如何制作macOS Big Sur 系统启动U盘
  13. 李开复创业两年记:创新工场的孵化之困
  14. Github精选:本周10大热门项目
  15. CAD高版本窗体阵列LISP_CAD高版本窗体阵列LISP_AutoCAD高版本怎么把阵列对话框调出来?...
  16. window10删除2345流氓软件
  17. python adb 实现对支付宝登录及后台监控
  18. PGP 对于JSON的加解密
  19. 计算机教师暑期到企业实践总结,国培教师企业实践总结
  20. 面:常见面试题整理(操作系统)

热门文章

  1. django复习笔记2:models
  2. CVPR2013感兴趣的文章整理
  3. 波士顿房价预测python决策树_百度飞浆paddlepaddle之波士顿房价预测(二)
  4. java表示非法参数的异常是_JAVA 的异常那些事
  5. 怎么跳伞_和平精英跳伞怎么快速落地 和平精英跳伞技巧琵琶网
  6. 理想条件下计算愚公移山需要多久
  7. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x80 in position 2
  8. opencv外接矩形矫正
  9. DeepFake——实际操作
  10. Caffe傻瓜系列(4):其它常用层及参数