微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP中require和include的区别

PHP中require和include的区别

前言

首先,我们对它要有一个基本的认知

1)include/require是一种语句

include/require都是用来包含并运行指定文件的语句。像echo一样不是函数,可以这样用:require('file_path'),但是我们要清楚:它们不是真正的函数

2)require、require_once、include、include_once 在PHP中都是用来加载文件

3)带once和不带once的区别

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

4)include()是有条件包含函数,而require()则是无条件包含函数PHP5.3及以上版本,这点没有区别)

     注意:这个根据测试,PHP5.3及以上版本,include和require在这点上面没有区别,都是有条件的包含函数。大家可以用下面的参考代码或者自己简单写一个,用不同的PHP版本测试下。

 test.PHP

1 <?PHP
2 $flag=1; //$flag=0 再测试下
3 if ($flag){
4     require  'test1.PHP';
5 }
6 
7 echo '888';

test1.PHP

 1 <?PHP 2 echo 'test1'.PHP_EOL; 

 

不知道有没有人和我一样,在说起这个四个方法区别的时候都能娓娓道来,但是在实际应用场景中,能正确地选择合适的语句并且有充分的理由,成为一件头疼的事情。这就说明我们的认知只是停留在概念上,并不是真正地理解然后去使用它。

 

这篇文章中,我们试着去分析这些语句的主要区别,以及借鉴一些目前PHP主流框架中的使用,去探讨我们在实际场景中该如何正确地去选择使用这些加载文件的语句。

 

1、主要区别

1)处理文件错误的机制

include() : 如果文件不存在,会给出一个警告(Warning),但是脚本会继续执行

require() :如果文件不存在,会报出一个致命错误Fatal error),脚本停止执行

 

如果通过页面访问的话,会报出500错误

2)PHP性能

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

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

3)不同的使用弹性

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

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐