PHP中include和require的区别

include和require都是一个将php导入到目前php文件中的一个函数,但是两个函数有区别。

两则的不同之处在于:

(1)include,每次获取,都要去对文件进行获取和评估,但是require,文件只处理一次,用文件中的内容将代替了require,所以说如果每次都去读取不同的代码的来说的话,include是比较有优势的,但是如果多次读取相同的代码来说的话,require的效率会比较高。

如果将require("1.php")放在PHP文件执行的最前面,在PHP文件执行之前,会先去将文件中的内容来代替require,而include则是需求的时候去读取。

总结一点而言:

     include是用到时读取,

   require是用之前读取,

     _once是用到的文件如果相同,那么只获取一次

(2)两则在运行时候,如果遇到不存在的文件。

1 <?php
2     //r.php         
3     $a = 1;
4     echo $a / 0;
5 ?>
1 <?php
2 //i.php
3     $b = 2;
4     echo $b / 0;
5 ?>

准备了两个php文件,一个是r.php,另外一个是i.php

首先验证require:

 1 <?php
 2     require "r.php";
 3     require "a.php";
 4     echo $a;
 5 ?>
 6 /*
 7 
 8 Warning: Division by zero in C:xampphtdocs	est
.php on line 3
 9 
10 Warning: require(a.php): failed to open stream: No such file or directory in C:xampphtdocs	estp.php on line 3
11 
12 Fatal error: require(): Failed opening required 'a.php' (include_path='.;C:xamppphpPEAR') in C:xampphtdocs	estp.php on line 3
13 */

不存在a.php所以,程序在此终止

接着验证下include:

 1 <?php
 2     include "r.php";
 3     include "a.php";
 4     echo $a;
 5 ?>
 6 /*
 7 
 8 Warning: Division by zero in C:xampphtdocs	est
.php on line 3
 9 
10 Warning: include(a.php): failed to open stream: No such file or directory in C:xampphtdocs	estp.php on line 3
11 
12 Warning: include(): Failed opening 'a.php' for inclusion (include_path='.;C:xamppphpPEAR') in C:xampphtdocs	estp.php on line 3
13 1
14 */

程序顺利运行,能够输出得到$a的结果,虽然没有能够找到对应文件

接着我们来验证下,require是否被文件中的内容代替(是否是无条件引用)

1 <?php
2     if(0){
3         require "r.php";
4     }
5     echo $a;
6 ?>

result:

1 Notice: Undefined variable: a in C:xampphtdocs	estp.php on line 5

没有能够发现,所以是没有引用进来,我的PHP版本是PHP/5.5.1

学习地址:

  http://www.cnblogs.com/xia520pi/p/3697099.html

原文地址:https://www.cnblogs.com/zafuacm/p/4279127.html