PHP函数include,include_once, require和require_once的区别

include 语句包含并运行指定文件

include_once 语句在脚本执行期间包含并运行指定文件。此行为和 include 语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。如同此语句名字暗示的那样,只会包含一次。

require 和 include 几乎完全一样,除了处理失败的方式不同之外。require 在出错时产生 E_COMPILE_ERROR 级别的错误。换句话说将导致脚本中止而 include 只产生警告(E_WARNING),脚本会继续运行。

require_once 语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。

以上是对这四个函数的介绍 ,下面来验证一下。首先看看

include与require的区别

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

<?php
include 't.php';
echo PHP_EOL.'------include----'.PHP_EOL;

如果t.php文件不存在,echo语句是可以被执行的。代码执行效果如下:

使用include引入文件,出现警告信息并继续执行输出内容
<?php
require 't.php';
echo PHP_EOL.'------require----'.PHP_EOL;

如果t.php文件不存在,echo语句是不被执行的。代码执行效果如下:

使用require引入文件,只看到报错信息,并没有输出

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

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

<?php
// 这种情况t.php被引入两次
require 't.php';
require 't.php';
echo PHP_EOL.$t.PHP_EOL;
<?php
// 这种情况t.php被引入一次
require 't.php';
require_once 't.php';
echo PHP_EOL.$t.PHP_EOL;

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

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

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

发表评论

评论已关闭。

相关文章

猜你喜欢