PHP中include()与require()的区别说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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的文件时,才将它读进来。 这种方式可以把程序执 行时 的流程简单化。
本文转自 IT阿飞 51CTO博客,原文链接:http://blog.51cto.com/itafei/1867570

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

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

相关文章

电脑重装系统重装不了,老是蓝屏,是不是硬盘烧坏了!

蓝屏代码是什么啊装不了有时候是内存的问题以下内容为百度知道Ctangel个人总结,并非网络复制,全是个人日常工作中遇到并且明确确定原因的。如需复制请注明出处。这里列举几个典型的蓝屏故障的原因和解决办法。一、0X0000000A 这个蓝屏代码和硬件无关&…

学习笔记(41):Python实战编程-按钮

立即学习:https://edu.csdn.net/course/play/19711/343103?utm_sourceblogtoedu 按钮——用于指令的提交作用,如将文本中输入的信息进行提交等 button tkinter.Button(root,text linlianqin,image photo,compound bottom) 创建了一个图片按钮,并且…

第八章读后感

一.Linux驱动的代码重用有很多的方法,可以采用标准的C程序的方法将要重用的代码放在其他的文件(在头文件中声明)中。如果要使用某些功能,include相应的头文件即可,也可以是另外一种动态重用的方式&#xff…

linux系统基础优化小结

不用root, 添加普通用户,通过sudo授权管理 更改默认的远程ssh服务端口及禁止root用户远程登陆 定时自动更新服务器时间 ntpdate 配置yum更新源,从国内更新源下载安装软件,如啊里云,163等.http://mirrors.aliyun.com…

iOS8 【xcode6中添加pch全局引用文件】

前沿:xcode6中去掉了pch,为了一些琐碎的头文件引用,加快了 编译速度! xcode6之前的版本建项目就自动添加了是这样的:xcode6后的版本要自己手动的添加步骤如下:1) 2)3) $(SRCROOT)/pc…

学习笔记(42):Python实战编程-pyinstaller程序打包

将程序打包可以使得所有Windows带有python虚拟机的电脑进行使用,打包的内容有代码加外部资源(如logo图片等) 步骤: 1)创建程序的代码 2)生成配置文件——用于获得打包的资源,将资源保存在运行程…

[js]BOM篇

一、什么是BOM BOM(Browser Object Model)即浏览器对象模型。BOM提供了独立于内容 而与浏览器窗口进行交互的对象;由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window;BOM由一系列相关的对象构成&#x…

透视校正

1、需要解决的问题: 怎么用图像处理的办法将梯形转换为规则的矩形,进行一个视觉的透视校正 2、解决思路: 1)先二值化图像,提取其轮廓(其中使用到填充,形态学知识) 2)…

杂项备忘

svn导出 export LANGzh_CN.UTF-8 && svn --username shuai --password shuai checkout svn://192.168.14.111/safe.qq.com /update/webapps/safe.qq.com mysqlsla --sortc_sum slow.log 本文转自 liang3391 51CTO博客,原文链接:http://blog.51cto.com/liang…

安装Pywin32后无法正常引用pyd文件

1. 首先在官方下载pywin32 2.下载完成后,无法正常引用pyd文件 3.解决方案: python安装目录\Lib\site-packages\pywin32_system32\* 至 C:\Windows\System32 转载于:https://www.cnblogs.com/MonkeyKingK/p/4731960.html

pyinstaller运行时出现TCLError的错误该怎么办?

1)修改代码后需要重新按照以上步骤进行,尤其不能忘记了修改配置文件的datas 2)必须得先pyi-makespec -F *.py指定要打包的程序,再修改配置文件,再pyinstaller -F *.spec程序打包 3)确保配置文件已经修改成功,即将以下图…

视觉统计计数方案

1、二值化分割 2、形态学 3、距离变换 4、再进行二值化 4、连通区域计算 输入: 输出:printf("统计玉米粒的个数 contours:%d\n",contours);//contours 17

SQL Server 查询表备注信息的语句

--name 字段名称--user_type_id --max_length 最大长度--is_nullable 是否允许空--remark 描述SELECT c.name, c.user_type_id, c.max_length, c.is_nullable, remark ex.value FROM sys.columns c inner JOIN sys.extended_properties ex ON ex.major_id c.object_id…

Filezilla 利用私钥无密码登录

Filezilla是常用的FTP客户端软件,这里介绍一个用私钥进行登录 主机:sftp://yourserver 用户名:yourname 点击“编辑”-“设置”菜单打开设置对话框,找到“连接”-“SFTP”设置项 添加密钥文件(A)”按钮,添加私钥文件,弹出对话框&a…

yo angualr-fullstatck 项目打包部署

yoeman使用grunt进行打包部署,直接运行grunt命令即可,期间会对代码进行检查,如果存在不规范的地方jshint会指定出来. grunt会对静态资源进行打包而且对资源文件名进行了MD5作为版本戳. 1:修改se…

Visual Studio 快捷键使用方法

1、Ctrl k 和 Ctrl F 一起使用可以格式化代码,让其对齐工整。

学习笔记(43):Python实战编程-事件处理简介

立即学习:https://edu.csdn.net/course/play/19711/343105?utm_sourceblogtoedu 事件: 1.概念:就是给组件添加一定的功能,使得单击或者是聚焦时产生一定的反应 2.知识点: 1)给组件绑定事件: 组件名.bind…

浅谈MIPS地址对齐问题

1.什么叫地址对齐? RISC 下使用访存指令读取或写入数据单元时,目标地址必须是所访问之数据单元字节数的整数倍,这个叫做地址对齐。 2.计算机主要的架构分哪两类?及其地址对齐在两者的区别? 计算机主要的架构就分为两类…

海信FW3010-5000H千兆防火墙

海信FW3010-5000H千兆防火墙 ◆处理带宽达到3G; ◆支持1,500,000个并发连接; ◆支持高达25,000个高级访问过滤; ◆真正的千兆硬件平台; ◆双机热备功能; ◆完善的日志信息; ◆支持P2P过滤,多达14种P2P识别; ◆特有的灾难恢复机制; ◆内嵌IDS模块,也可和…

java File类 打印目录树状结构(递归)

import java.io.File;/*** 递归遍历**/ public class FieTree {public static void main(String[] args) {File f new File("D:/java笔记");printFile(f,0);}static void printFile(File file,int level){for(int i0;i<level;i){System.out.print("-")…