当前位置: 首页 > 编程笔记 >

PHP函数include include_once require和require_once的区别

南宫阳冰
2023-03-14
本文向大家介绍PHP函数include include_once require和require_once的区别,包括了PHP函数include include_once require和require_once的区别的使用技巧和注意事项,需要的朋友参考一下

了解下include、include_once、require和require_once这4个函数:

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

1 include与require的区别

include与require除了在处理引入文件的方式不同外,最大的区别就是:include在引入不存文件时产生一个警告且脚本还会继续执行,而require则会导致一个致命性错误且脚本停止执行。

<?php
  include 'no.php';
  echo '123';
?>

如果no.php文件不存在,echo '123'这句是可以继续执行的.

你看到的可能是类似下边的情况:

<?php
require 'no.php';
echo '123';
?>

如果no.php文件不存在,echo '123'这句是不执行的,在require时就停止了。

你看到的可能是类似下边的情况:

include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而 require()则是无条件包含函数

例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:

if($something){
include("somefile");
}

但不管$something取何值,下面的代码将把文件somefile包含进文件里:

if($something){
require("somefile");
}

2 include与include_once的区别(require与require_once的区别)

include_once (require_once)语句在脚本执行期间包含并运行指定文件。此行为和 include (require)语句类似,区别是如果该文件中的代码已经被包含了,则不会再次包含,只会包含一次。include_once(require_once)需要查询一遍已加载的文件列表, 确认是否存在, 然后再加载。

<?php
require '1.php';
require '1.php';
?>

这种情况下1.php被包含两次。

<?php
require '1.php';
require_once '1.php';
?>

这种情况下,第二次包含时,是不会进行包含的。

include(require)与include_once(require_once)的抉择问题

通常:include_once和require_once会有性能上的下降,因为他需要判断之前是否包含过。一般情况下,也不太需要去考虑,除非这已经影响到你程序的性能了。

如果使用 APC 尽量也不要用include_once,因为apc.include_once_override配置项没有很好的被实现(详情百度)。

注1:Alternative PHP Cache (APC)是一种对PHP有效的开放源高速缓冲储存器工具,它能够缓存opcode的php中间码。

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

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

return 在返回引用的时候加上括号不但效率低而且会造成逻辑错误。那么这几个函数呢?

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

 类似资料:
  • 问题内容: 在PHP中: 我什么时候应该使用vs. 我什么时候应该使用vs. 问题答案: 也有和。 所以你的问题应该是… 我什么时候应该使用vs. 我什么时候应该使用vs. 这里描述1的答案。 require()函数与include()相同,不同之处在于它对错误的处理方式不同。如果发生错误,include()函数将生成警告,但脚本将继续执行。require()产生致命错误,脚本将停止。 在这里可以

  • 本文向大家介绍PHP中explode函数和split函数的区别小结,包括了PHP中explode函数和split函数的区别小结的使用技巧和注意事项,需要的朋友参考一下 一、前言 之所以做这个,是因为这两个函数的作用很像,都是把字符串转换成数组。 二、explode 从下面的例子可以看出,生成的数组是有对应的顺序的。 注意的是,如果第一个参数为空字符串的话,就会产生Warning。 三、split

  • 问题内容: 是否可以使用JavaScript 从PHP调用函数?如果可以的话,有人可以给我举个例子吗? 那就是我要调用的函数。它的订购系统,你在你多么希望每个项目,点击提交,并键入 应 的顺序添加到表。 问题答案: 您不能从Javascript调用PHP函数… Javascript是一种客户端语言(在收到网页后在Web浏览器上执行),而PHP在服务器端(在呈现网页之前执行)。您无法拨打一个电话。

  • 我在使用PHP strtotime函数是,遇到了+9时区的问题。 得到的结果是 2024-01-01 09:00:00 请问到底该怎么解决才能使 strtotime 直接得到0点的时间戳? 我检查了系统的时区,timedatectl 返回的结果 PHP date_default_timezone_get() 返回的是PRC。 即便使用 DateTime 得到的依然是2024-01-01 09:00

  • 本文向大家介绍Javascript 普通函数和构造函数的区别,包括了Javascript 普通函数和构造函数的区别的使用技巧和注意事项,需要的朋友参考一下 普通函数和构造函数的区别 在命名规则上,构造函数一般是首字母大写,普通函数遵照小驼峰式命名法。 在函数调用的时候: function fn() { }      构造函数:1. new fn( )                      2

  • 本文向大家介绍C++ 虚函数和纯虚函数的区别分析,包括了C++ 虚函数和纯虚函数的区别分析的使用技巧和注意事项,需要的朋友参考一下 首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数。 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯虚函数,才代表函数没有被实现。 定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函