include、include_once、require、require_once的区别

php中文网
发布: 2016-07-30 13:30:46
原创
1196人浏览过

首先要说的是,include、include_once、require、require_once的核心功能都是一样的,都是相当于把目标网页的代码生硬地直接复制过来。

基本上,如果不从性能上考虑,使用include、include_once、require、require_once都可以达到基本的效果。基本上爱怎么用就怎么用。

其中的微小差别如下:

例如1.php中有句简单的打印语句:

<?php echo "1" ?>
登录后复制

下面的程序运行的结果:

<?php
include '1.php';
require '1.php';

include_once '1.php';
require_once '1.php';
?>
登录后复制

为2个1,而不是4个1,因为include和require都是引入指定的文件,_once表示只引入一次,即之前已经引入过的不再引入。

如果写成:

<?php
include_once '1.php';
require_once '1.php';
include '1.php';
require '1.php';
?>
登录后复制

结果将是4个1。

值得注意的是,_once虽然表示之前已经引入过的不再引入,但这个语句不会检查所引入的网页中的代码是否相同,比如有两个代码一模一样的网页untitled.html与untitled1.html皆为:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" c/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
</body>
</html>
登录后复制

如果有以下的语句:

<?php
include_once 'untitled.html';
include_once 'untitled1.html';
?>
登录后复制

出来的结果是这样的:


看到相同的部分出现两次。_once只是通过文件名来判断之前已经引入过是否再引入。

因此_once并不能防止不同名却同一个资源多次引入的现象。

稿定AI社区
稿定AI社区

在线AI创意灵感社区

稿定AI社区 60
查看详情 稿定AI社区

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

比如a.php如果不存在,以下的代码,依旧会输出b:

<?php
include 'a.php';
echo 'b';
?>
登录后复制
而:

<?php
require 'a.php';
echo 'b';
?>
登录后复制
则不会。

同时还有如下的区别:

include()是有条件包含函数,而 require()则是无条件包含函数

if(FALSE){ 
    include 'file.php'; //file.php不会被引入 
} 

if(FALSE){ 
    require 'file.php'; //file.php将会被引入
}
登录后复制
include有返回值,而require没有

$retVal = include(’somefile.php’);
if(!empty($retVal)){
  echo “文件包含成功”;
}else{
  echo “文件包含失败”;
}
登录后复制
是可以的。

include()执行时需要引用的文件每次都要进行读取和评估,require()执行时需要引用的文件只处理一次,实际上执行时需要引用的文件内容替换了require()语句,可以看出若有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高,若每次执行代码时相读取不同的文件或者有通过一组文件叠代的循环,就使用include()。

require通常使用方法,这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。include通常使用方法,这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

另外关于include和require后面是否加括号的问题,理论上来说:include和require后面加不加括号对执行结果没有区别,但是加上括号效率较低,所以后面能不加括号就不加括号。

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了include、include_once、require、require_once的区别,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相关标签:
php
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号