PHP函数include include_once require和require_once的区别


功能介绍

  • include函数:会将指定的文件读入并且执行里面的程序;
  • require函数:会将目标文件的内容读入,并且把自己本身代换成这些读入的内容;
  • include_once 函数:在脚本执行期间包含并运行指定文件一次。如果该文件中已经被包含过,则不会再次包含和运行;
  • require_once 函数:和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。

include 与 require 的区别

1.引入文件的方式不同

  • include 会读取指定文件,并执行里面的程序;
  • requrire 将目标文件内容替换自身;

2.当引入文件不存在时,处理行为不同

  • include 会产生一个警告,但脚本会继续运行;
  • requrire 会导致一个致命错误,并停止运行;

3.功能相似,执行的条件不同

  • include 在下面例子中,只有$val为真,才包含文件file;
if ($val) {
  include("file");
}
  • requrire 在下面例子中,不管$val真假,都会包含文件file;
if ($val) {
  require("file");
}

4.通常放置的位置不同

  • include 一般放在流程控制的处理部分,当执行到include时再读取文件,可将程序流程简单化;
  • requrire 一般放在PHP程序最前面,在程序代码执行前,先读取指定的文件,将其作为程序的一部分;

xxx 与 xxx_once 的区别

  • include 和 require 可包含并执行多次,如下 file 被包含并执行四次:
<? php
  require 'file';
  require 'file';
  include 'file';
  include 'file';
?>
  • include_once 和 require_once 在包含指定文件前,会先查询一遍已加载的文件列表,确认未包含过才进行包含并运行。如下 file1 和 file2 只会被包含并执行一次:
<? php
  include 'file1';
  include_once 'file1';
  require_once 'file2';
  require_once 'file2';
?>

xxx 与 xxx_once 的抉择

  • 通常 include_oncerequire_once 会有性能上的下降,因为需要查询是否包含过。但如果不在循环体内,性能影响不会太大。
  • 当启用 APC 时,尽量不要用include_once,因为apc.include_once_override配置项没有很好的被实现。
    注:Alternative PHP Cache (APC)是一种对PHP有效的开放源高速缓冲储存器工具,它能够缓存opcode的php中间码。

包含函数后加不加括号

理论上来说:include和require后面加不加括号对执行结果没有区别,但是加上括号效率较低,所以后面能不加括号就不加括号。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容