require与include的区别

引用文件的方法有两种:require 及 include。两种方式提供不同的使用弹性。

require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

他们两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。

require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误
include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。

以下为补充:

1. include有返回值,而require没有。

2. include()包括并运行指定文件 在处理失败时include() 产生一个警告,被导入的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到include()语句的位置相同的变量范围。你可以导入同一个服务器中的静态页面。

3. include_once()的作用和include()是几乎相同的
唯一的差别在于include_once()会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入(这项功能有时候是很重要的,比方说要导入的里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个文件,在第二次导入的时候便会发生错误讯息,因为PHP不允许相同名称的函数被重复宣告第二次)。

4. require()会将目标文件的内容读入,并且把自己本身代换成这些读入的内容 在处理失败时require() 则导致一个致命错。
这个读入并且代换的动作是在PHP引擎编译你的程序代码的时候发生的,而不是发生在PHP引擎开始执行编译好的程序代码的时候(PHP 3.0引擎的工作方式是编译一行执行一行,但是到了PHP 4.0以后就有所改变了,PHP 4.0是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require()通常来导入静态的内容,而include()则适合用导入动态的程序代码。

5. 如同include_once(),require_once()会先检查目标文件的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。

5. require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require。

7. require通常放在PHP程序的最前面,PHP程序在执行前,就会先读入require所指定引入的文件,使它变成PHP程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

8. include一般是放在流程控制的处理部分中PHP程序网页在读到include的文件时,才将它读进来。这种方式可以把程序执行时的流程简单化。

转载于:https://www.cnblogs.com/zhq--blog/p/6731463.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java实现map和object互转

maven依赖 <dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.3</version> </dependency> 工具类 /*** 对象工具类* 王洪岐 20190726*/ public class ObjectUtil …

分享自己作为一个程序员的找工作经历

我叫杨磊&#xff0c;从2016年5月开始学了关于软件开发的道路上&#xff0c;我是报一颗火热的心。在学习中&#xff0c;不说是最好的&#xff0c;但我觉得自己一定是很积极的去学习。 从学了之后的&#xff0c;放假时间&#xff0c;我大多时间都是用在码代码&#xff0c;不断的…

mybatisplus坑 insert标签insert into select无参数问题

实际项目中发现 <insert id"xxx"> insert into xxxx select xxxx </insert> 会报错 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: …

前端学习(2392):关于路径中的@

import Vue from vue import VueRouter from vue-router // 表示src路径的别名 好处就是它不受当前文件路径影响 import Login from /views/login/index Vue.use(VueRouter)// 路由配置表 const routes [{path: /login,name: login,component: Login }] const router new Vue…

Java调用ElasticSearch 7.2.1 保存、统计、多字段分组聚合

目录 maven引用 配置 配置类 保存数据方法 参照官方的引用方式会报错 分组统计 查询后再统计 多字段分组聚合 maven引用 注意版本与es版本一致 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-…

cocos2d-x 2.2 创建项目

楼主用的是2.2版本号 曾经的版本号是要在vs中加入模版 建立项目 但新版本号更新后使用python建立项目 最好是python2.7以上 找到create_project.py文件所在路径 tools/project-creator/.. 打开cmd.exe 输入 cd /d D:cocosdx/....... 后面为create_project.py所在的路径…

Postgresql时间处理

目录 时间/日期操作符 日期/时间函数 EXTRACT函数 综合示例 时间/日期操作符 操作符例子结果date 2011-09-28 integer 7date 2011-10-05date 2011-09-18 interval 1 hourtimestamp 2011-09-18 01:00date 2011-09-18 time 02:00timestamp 2011-09-18 02:00interval 1 day…

jmap报错unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap

jmap报错 [roothost-10-0-197-189 service]# jmap -heap 12139 Attaching to process ID 12139, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.191-b12using thread-local object allocation. Parallel GC with 8 thread(s)H…

topcoder SRM712 Div1 LR

题目&#xff1a; Problem Statement We have a cyclic array A of length n. For each valid i, element i-1 the left neighbor of element i. Additionally, element n-1 is the left neighbor of element 0. You are given two vector<long long>s s and t, each…

Spring Boot Quartz应用

目录 简单用法 配置cronSchedule的写法 简单用法 直接EnableScheduling后&#xff0c;方法上加上Scheduled(cron "0 */1 * * * * ")就行了。 此种方式需要写死时间、写死实现&#xff0c;生产环境不方便配置控制。 EnableScheduling SpringBootApplication publi…

2491 玉蟾宫

2491 玉蟾宫 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 大师 Master 题目描述 Description有一天&#xff0c;小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫&#xff0c;玉蟾宫宫主蓝兔盛情地款待了它们&#xff0c;并赐予它们一片土地。 这片土地被分成N*M个格子&am…

linux根目录空间占满问题排查

df -h 看到/目录已满 切换到根目录后看各个目录空间占用 cd / du -h -x --max-depth1 [rootlocalhost usr]# du -h -x --max-depth160M ./bin42M ./sbin460M ./lib207M ./lib64204M ./share0 ./etc0 ./games36K ./include12M ./libexec0 ./local0 ./src983M . 依次找到过大…

hihocoder 1183 割点和割边

链接&#xff1a; http://hihocoder.com/problemset/problem/1183 代码&#xff1a; 1 #include <map>2 #include <set>3 #include <cmath>4 #include <queue>5 #include <stack>6 #include <cstdio>7 #include <string>8 #include …

ubuntu navicat删除目录破解如何保留配置信息

配置信息存储位置&#xff1a; ~/.navicat64/user.reg 这个文件跟windows注册表导出的文件一样 下面分析配置中对我们有用的信息 字体设置&#xff1a; [Software\\PremiumSoft\\NavicatPremium] 1566266955 #time1d556fc440497e6 "AlreadyShowNavicateV121WelcomeS…

前端学习(2398):回顾

# 一、项目初始化## 使用 Vue CLI 创建项目> 注意&#xff1a;不要使用 Git Bash 执行项目创建操作&#xff0c;使用 cmd 或者 powershell 之类的工具。> 如果你还没有安装 VueCLI&#xff0c;或者版本低于 4&#xff0c;请执行下面的命令安装或是升级&#xff1a; >…

ubuntu经常提示:检测到系统程序出现问题

sudo vi /etc/default/apport 修改值 enabled0

前端学习(2399):关于编辑代码编辑器

代码段使用 可以对对应的编辑器去设置代码段

React Native 一些事

ReactJS 是否准备好 有时候我们常常需要监听 ReactJS 的的加载情况。 比如说&#xff0c;当获取一条推送&#xff0c;应用还没有起来&#xff0c;通过点击推送启动应用后&#xff0c;而推送中包含一些我们感兴趣的字段需要处理&#xff0c;我们如果直接把这条通知发送给 ReactJ…

ubuntu下 windows的zip文件打开,中文目录和文件名乱码

sudo apt-get install unar lsar xxx.zip 查看压缩文件内文件名 unar xxx.zip 解压文件 原因&#xff1a;windows下面文件名是GBK编码的&#xff0c;与linux不同。