include和require区别

PHP include和require区别

这两个方法最主要的区别就是对错误的处理方式,对于这一点,也做了一个测试.

但是还有一点,有的文章中提到, require相当于预处理,即它是在程序运行之前就被执行的。所以它是不可以用在控制语句中的,如if中。但是我做了如下测试 :

1
2
3
4
5
6
7
8
9
for( $i=1 ; $i <= 5 ; $i++ ){
if($i == 1 || $i == 3){
require("b.php");
} else {
require("a.php");
}
}
其中a.php文件中输出的是 aaaa
b.php 文件中输出的是 bbbb

输出的结果为 :

1
2
3
4
5
bbbb
aaaa
bbbb
aaaa
aaaa

显然require也是在程序运行过程中按if判断正确载入的呀 那么是不是说,include和require,除了对错误处理的方式不同,就没有其他区别了??

PHP的include()和require()就是两种包含文件外部文件的方法

  1. 加载失败的处理方式不同 :

    • include()会产生一个警告,而require()则会导致一个致命的错误 (出现错误,脚本停止下面的运行)
    • require() 如果文件不存在,会报一个fatal error 的错误,脚本停止运行
    • include() 如果文件不存在,会给出一个warning的错误,但是脚本会继续执行

    这里要特别注意是 : 使用include() 文件不存在的时候,脚本会继续执行,这种情况只会出现在PHP 4.3.5 之前

    这里推荐使用 require_once 和 include_once ,这两个方法可以检测出是否有文件重复包含

  2. PHP 性能不同

    • 对于include()来说.在include()执行文件时每次都要进行评估和读取
    • 对于require()来说,文件只处理一次,(实际上,文件内容替换了require() 语句)

    这就意味着如果包含了这些指令之一的代码和可能执行的代码,则使用require() 方法效率会高.

    另一方面,如果每次执行代码时相读取不同的文件,或者有通过一组文件叠代的循环,就使用include(),

    因为可以给想要包括的文件名设置一个变量,当参数为include时使用这个变量.

  3. 二中方式提供不同的使用弹性

    • require 的使用方法 如require (‘ ./inc.php ‘); 通常放在PHP文件的最前面, PHP程式在执行前,就会读入require所指定的引入的文档 将它变成 PHP 网页的一部分.
    • include 使用方法如 include(“./inc/.php”); 。一般是放在流程控制的处理区段中。PHP 程式网页在读到 include 的档案时,才将它读进来。这种方式,可以把程式执行时的流程简单化。
    • require即使在条件位FALSE的时候也会被包含,而include只会在执行到改位置时候才会去执行
    • require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。require_once()函数的作用和 require() 是几乎相同的
    • include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。include_once()函数的作用和 include() 是几乎相同的
    • require_once的作用是会检查之前是否加载过该文件,如果没有加载则加载 如果加载过就不再次加载,比如某文件定义了一个类型 如果两次加载该文件会出现错误。

———————————–有点绕,虽然我是搞前端的,但是前后端交互还是要懂一点的———————————–

文章目录
  1. 1. PHP include和require区别
|