简言之,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. MySQL导数据笔记

    2019-12-16 9:08:43 星期一 MySQL 5.6 limit / order 有bug, 如果主键不是自增的, 只能全表导出导入, 增量导入导出的话会报主键重复 触发器: 批量导入数据 ...

  2. unittest===unittest 的几种执行方式

    #demo.py import requests import json class RunMain: def __init__(self, url, method, data=None): self ...

  3. js:对象之间的复制

    1.:复制obj1,不管obj2是否有这个属性,但是ojb2中的特有属性会保留 var obj1={id:1,name:'zhangsan'} var obj2={}; for (var prop i ...

  4. DL/T645-2007 及 Modbus-RTU智能电表调试工具

    最近在做微信门禁,智能电表采集,智能水表采集项目时,发现网上很多调试工具用起来不顺手,电脑里面起码下了五六个软件. 好不容易弄清楚了,就自己写一个工具,方便自己使用,也顺便造福一下其他人吧

  5. Efficient and Accurate Arbitrary-Shaped Text Detection with Pixel Aggregation Network(利用像素聚合网络进行高效准确的任意形状文本检测)

    PSENet V2昨日刚出,今天翻译学习一下. 场景文本检测是场景文本阅读系统的重要一步,随着卷积神经网络的快速发展,场景文字检测也取得了巨大的进步.尽管如此,仍存在两个主要挑战,它们阻碍文字检测部署 ...

  6. Node.js实现PC端类微信聊天软件(三)

    Github StackChat Redux学习回顾 Redux的主要功能就是管理复杂交错的State,比如需要讲state提升到顶层组件的场景中,使用Redux就很合适 Redux主要提供三个东西来 ...

  7. Kafka Connect简介

    Kafka Connect简介 http://colobu.com/2016/02/24/kafka-connect/#more Kafka 0.9+增加了一个新的特性Kafka Connect,可以 ...

  8. 在ensp中的acl控制

    原理 实验模拟 实验拓扑 相关参数 我们在每一台路由器上设置ospf服务,使其互相能通 下面我们配置基本ACL控制访问 配置完成后,尝试在R1上建立telent连接 但是这样设置是不安全的,只要是直连 ...

  9. PHP 跨域资源共享 CORS 设定

    CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从 ...

  10. Linux Docker Introduction

    Setup on Ubuntu. 前提条件: Docker需要两个重要的安装要求: 它仅适用于64位Linux安装,注意:是64位的Linux系统. 它需要Linux内核版本3.10或更高版本. 要查 ...