PHP中include,require,include_once,require_once的区别详解
在做程序设计的时候避免不了要去引用外部文件,在 PHP 中引入文件的方式有很多种,这里详细说一下 include ;require ;include_once;require_once。
`require ()` 语句的性能与 `include ()` 相类似,都是包括并运行指定文件。除了处理失败的方式不同之外。`require`
在出错时产生 `E_COMPILE_ERROR` 级别的错误,终止脚本运行;而 `include` 只产生警告`(E_WARNING)`,脚本会继续运行。
1.include 和 require 都是语句结构(并不是函数)
在 php 官网手册上是划分到了流程控制,这两个语句结构不是函数。
详情可参考 http://php.net/manual/zh/function.include.php
所以,它可以不加圆括号,直接加引号来包含文件。我习惯不加圆括号。
include '01_var.php'; 或者 include('01_var.php'); 或者 require '01_var.php'; 或者 require('01_var.php');
2. 对于处理失败的方式不同(最主要的区别)
对于引入的文件找不到情况下。(这里确保当前文件夹下面不存在 no.php)
在 01_include_require 文件下编写如下代码:
include 'no.php'; echo 'End!';//会输出
include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。
require 'no.php'; echo 'End!';//不会输出
require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
3. 对 include 和 require 引入文件的实质
对 include () 语句来说,在执行文件时每次都要进行读取和评估;
对于 require () 来说,文件只处理一次(实际上,文件内容替换 require () 语句)这就意味着如果可能执行多次的代码,则使用require () 效率比较高。
另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用 include () 语句。
4.include_once 和 require_once 的作用
使用方法与不加后缀一样,加上_once 后缀 意味着如果该文件中的代码已经被包括进来了,就不会再次包括。因为有些情况下,在脚本执行期间,同一个文件有可能包含超过一次的情况下,为了确保只包含一次,避免函数重定义,或者是变量的重新赋值的问题。
include_once '01_var.php'; require_once '01_var.php';
使用场景
如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。
在框架复杂的 php 应用程序编程中,请始终使用 require向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。包含文件省去了大量的工作。例如在 thinkphp 框架 index 入口引入核心代码就是利用 require 引入的。
require 通常放在 php 脚本程序最前面,php 再执行程序前,就会先读取 require语句引入的文件,使之成为 php 脚本文件的一部分。
include 通常用在流程控制的处理部分中,php 脚本在读到 include的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
-
历年法硕考研真题及参考答案
2005年全国法律硕士联考真题专业综合课.pdf2005年全国法律硕士联考真题答案详解专业基础课刑法学 - 副本.pdf2005年全国法律硕士联考真题... 889 0 24-08-20 -
30+英文电子书免费下载网站
阅读书籍的目的通常就是两种, 其一获取知识. 其二娱乐休闲. 在互联网发展的今天, 阅读已经逐渐有了新的数字媒体平台 -电子书. 本文... 885 0 25-03-03 -
CPU 过载保护设计:如何在服务层面确保系统稳定?
过载保护假设一种场景,我们去银行办事,大家都知道需要拿号排队,银行每 10 分钟处理 1 个人的业务,而每 10 分钟会进来 2 个人,... 1373 0 24-05-24 -
Chat Smith 安卓人工智能软件
AI史密斯聊天机器人是一款集成了AI、ChatGPT和GPT-4技术的先进聊天应用程序,旨在通过智能化的交互体验,全面革新您的日常生活。Chat Smit... 957 0 24-12-12 -
Java开发实战1200例
《Java 开发实战 1200例》包括第【卷、第Ⅱ卷共计 1200 个例子,本书是第【卷,包含 603 个例子。程序开发是一项艰辛的工作,它不仅... 824 0 24-05-28 -
Quicker—内置1000+种指令
一款超级好用的工具箱——Quicker,操作更少,用途更多!安装包不足10M大小,却内置了数千种指令,甚至可以自己创建所属的指令。 938 0 21-09-04 -
Python3.6.4网络爬虫实战第2版
计算机技术飞速发展,人们对计算机使用技能的要求也越来越高在编写软件时,大家既希望有超高的效率,又希望这门语言简单易用。这种鱼与熊掌... 1021 0 24-05-29 -
原型继承和 Class 继承
⾸先先来讲下 class ,其实在 JS 中并不存在类, class 只是语法糖,本质还是函数class Person {} Person instanceof Function; // t... 544 0 25-04-07
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~