PHP中require和include的区别

404 查看

基本概述

  1. require、require_once、include、include_once 在php中都是用来加载文件的。

  2. 带once和不带once的区别主要是:带once的会判断你在加载这个文件之前是否已经加载过了文件,避免重复加载。

  3. require和include是语句像echo一样不是函数,require('file_path')也可以用但是它们不是函数。

主要区别

  • 处理文件错误的机制

  • php性能

  • 不同的使用弹性

处理文件错误的机制上面不同

  1. require() :如果文件不存在,会报出一个fatal error.脚本停止执行;

  2. include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行;

php性能

  1. 对include()来说,在include()执行时文件每次都要进行读取和评估;

  2. 对require()来说,文件只处理一次(实际上,文件内容替换了require()语句)。

不同的使用弹性

  1. require的使用方法如 require("./inc.php"); 。通常放在PHP程式的最前面,PHP程式在执行前,就会先读入require所指定引入的档案,使它变成PHP 程式网页的一部份。

  2. include使用方法如 include("./inc.php"); 。一般是放在流程控制的处理区段中。PHP程式网页在读到 include的档案时,才将它读进来。这种方式,可以把程式执行时的流程简单化。

错误理解

require即使在条件为FALSE的时候也会被包含,而include只会在执行到改位置时候才会去执行。
(经php5.5测试,不存在该区别。可能低版本php存在该区别。)