简言之,include某文件:把某文件的代码粘过来,如果该文件不存在,也继续执行下面的代码,带_once的是看看之前引用过没,引用过就不引用了(_once这行代码的心里活动:“之后引用过没有我不关心,我只看我之前引用过没”)。
require和include的区别仅仅在报错的处理上,require某文件时,文件不存在则报错

include、include_once、require、require_once

include某文件:把某文件的代码粘过来,替换掉include某文件这个语句,如果该文件不存在,也继续执行下面的代码

require某文件:和include不同的地方是,如果文件不存在,报错

带_once的是,朝前看,如果之前引入过该文件,那么就不引入了!带_once的效率低点。

详情如下:

---------------------------------------

include某文件,就等于把该文件中代码粘贴过来,替换掉include这句话

这样一来,看看多次include一个文件会是什么效果

a1.php代码改为如下;

<?php
//我是a1.php
$a1++;
?>

index.php 代码如下:

 <?php
ini_set("error_reporting","E_ALL & ~E_NOTICE");
header("Content-type:text/html;charset=UTF-8");
$a1= 1;
include('a1.php');
echo $a1;
?>

引入一次include(上面第5行代码),$a1变为2,修改上面的代码,再加上两次include,变成如下:

如果include改为include_once呢?

include_once就是看前面的代码中(注意:不会朝后看),该文件有没有被include过或include_once过,有,那就不引入过来了,没有,那就引入过来。而include就是,甭管那么多,引过来!

所以,include效率高点!

 <?php
ini_set("error_reporting","E_ALL & ~E_NOTICE");
header("Content-type:text/html;charset=UTF-8");
$a1= 1;
echo $a1; //
include('a1.php'); //引过来所以$a1+1
echo $a1; //
include_once('a1.php'); //发现前面执行了include a1.php这个文件,不引入了。所以$a1还是2
echo $a1; //
include('a1.php');//继续引过来,所以$a1+1为3
echo $a1;//
?>

再比如,include_once不是朝后看

 <?php
ini_set("error_reporting","E_ALL & ~E_NOTICE");
header("Content-type:text/html;charset=UTF-8");
$a1= 1;
echo $a1; //
include_once('a1.php');
//朝前看,没有include或include_once过a1.php,所以,引过来 $a1变为2
echo $a1; //
include('a1.php');//继续引过来,所以$a1+1为3
echo $a1;//
?>

include和require的区别

php 文件包含 include、include_once、require、require_once的更多相关文章

  1. include,include_once,require,require_once的区别

    1.include() include(/path/to/filename) include()语句将在其被调用的位置处包含一个文件.包含一个文件与在该语句所在位置复制制定文件的数据具有相同内容的效果 ...

  2. php include include_once require require_once 的区别与联系

    一.require 与 include 的区别: The require() function is identical to include(), except that it handles er ...

  3. php学习笔记6--php中的文件包含 include,require,include_once,require_once

    php中的文件包含 include,require,include_once,require_once 文件包含:是指将一个文件的内容包含进另外一个文件,有利于代码的复用等.php中文件包含指令有4个 ...

  4. 包含文件函数include与require的区别

    include或include_once一般用于动态包含,所谓动态包含就是根据不同条件包含不同文件 require或require_once一般用于静态包含,比如包含一个html文件的头部或者尾部 如 ...

  5. PHP函数include include_once require和require_once的区别

    了解下include.include_once.require和require_once这4个函数: include函数:会将指定的文件读入并且执行里面的程序: require函数:会将目标文件的内容 ...

  6. C语言 预处理一(文件包含--#include)

    //预处理命令不需要在结束末尾加":" //#inlude可以包含任意类型的文件 //#inlude 将一个源文件的全部内容包含到另一个源文件中,成为它的一个部分,文件包含的一般格 ...

  7. CTF 文件包含

    目录 一.基本概念 二.本地文件包含 三.远程文件包含 四.具体场景 五.补充 一.基本概念 文件包含 将相同函数写入单独的文件中,需要使用时直接调用 文件包含漏洞 将被包含的文件设置为变量,导致客户 ...

  8. 13)PHP,文件加载(include和require)

    有四种文件加载的语法形式(注意,不是函数): include,  include_once,  require, require_once; 他们的本质是一样的,都是用于加载/引入/包含/载入一个外部 ...

  9. WEB安全第二篇--用文件搞定服务器:任意文件上传、文件包含与任意目录文件遍历

    零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的pay ...

随机推荐

  1. JMeter压测上对于并发的认识误区

    1.误区 在JMeter压测过程中,我们通常认为1s内100的并发量(即:QPS为100)的设置如下: 此时,没有再添加额外的控制器.上述中的参数设置解释:Number of Threads(user ...

  2. Ubuntu 上多版本软件管理方法

    https://linuxize.com/post/how-to-install-gcc-compiler-on-ubuntu-18-04/ sudo apt install software-pro ...

  3. resources-plugin-2.6.pom.part.lock (没有那个文件或目录)

    由于 自定义 maven 仓库没权限 /home/repository 自定义目录 [root@localhost Service]# cat /etc/group|grep jenkins jenk ...

  4. vue-cli3项目关闭烦人的代码检测

    参考博客:https://blog.csdn.net/e1172090224/article/details/99636767 vue.config.js module.exports = { lin ...

  5. delimiter关键字

    默认的sql语句以分号";"表示结束.mysql解释器每遇到一个分号,执行一段语句.可以通过delimiter更改语句结束符 mysql>delimiter &&am ...

  6. C# HashSet集合类型使用介绍

    1.HashSet集合 使用HashSet可以提高集合的运算.使用HashSet集合不自带排序方法,如果需要排序的需求可以参考使用List<T>集合配合Sort方法. HashSet的优势 ...

  7. 研发的困境----DEVOPS

    1.研发的困境 互联网的环境 互联网这个环境比较特别,包括现在不只是互联网,就算是被互联网赋能的这些“互联网+”的企业也在改变,用户在发生变化,用户构成的群体在发生变化,群体造成场景的变化,场景营造新 ...

  8. mysql 更新与查询(排序 分组 链接查询)

    UPDATE更新 #每一次数据的更新都需要update UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法: UPDATE table_name SET field1=new-valu ...

  9. VMware和Centos安装

    1.Windows,VMware和Centos三者的关系 2.VMware安装 下载好之后一直下一步安装,很简单 3.Centos安装 打开VMware,点击创建新的虚拟机  选择自定义,然后点下一步 ...

  10. 20、Outer Apply 和 Cross Apply

    1.場合 select...caseが複雑の時 2.運用方法 SELECT * FROM stu CROSS APPLY ( --like inner join * FROM score WHERE ...