前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP中include,require,include_once,require_once的区别详解

PHP中include,require,include_once,require_once的区别详解

作者头像
骤雨重山
发布2022-01-17 11:32:22
9270
发布2022-01-17 11:32:22
举报
文章被收录于专栏:骤雨重山

前言

在做程序设计的时候避免不了要去引用外部文件,在 PHP 中引入文件的方式有很多种,这里详细说一下 includerequireinclude_oncerequire_once

代码语言:javascript
复制
`require ()` 语句的性能与 `include ()` 相类似,都是包括并运行指定文件。除了处理失败的方式不同之外。`require`
在出错时产生 `E_COMPILE_ERROR` 级别的错误,终止脚本运行;而 `include` 只产生警告`(E_WARNING)`,脚本会继续运行。

1.include 和 require 都是语句结构(并不是函数)

在 php 官网手册上是划分到了流程控制,这两个语句结构不是函数。

详情可参考 http://php.net/manual/zh/function.include.php

所以,它可以不加圆括号,直接加引号来包含文件。我习惯不加圆括号。

代码语言:javascript
复制
include '01_var.php';
或者
include('01_var.php');
或者
require '01_var.php';
或者
require('01_var.php');

2. 对于处理失败的方式不同(最主要的区别)

对于引入的文件找不到情况下。(这里确保当前文件夹下面不存在 no.php)

在 01_include_require 文件下编写如下代码:

代码语言:javascript
复制
include 'no.php';
echo 'End!';//会输出

include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

代码语言:javascript
复制
require 'no.php';
echo 'End!';//不会输出

require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。

3. 对 include 和 require 引入文件的实质

  • include () 语句来说,在执行文件时每次都要进行读取和评估;
  • 对于 require () 来说,文件只处理一次(实际上,文件内容替换 require () 语句)这就意味着如果可能执行多次的代码,则使用require () 效率比较高。
  • 另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用 include () 语句。

4.include_once 和 require_once 的作用

使用方法与不加后缀一样,加上_once 后缀 意味着如果该文件中的代码已经被包括进来了,就不会再次包括。因为有些情况下,在脚本执行期间,同一个文件有可能包含超过一次的情况下,为了确保只包含一次,避免函数重定义,或者是变量的重新赋值的问题。

代码语言:javascript
复制
include_once '01_var.php';
require_once '01_var.php';

使用场景

  1. 如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include
  2. 在框架复杂的 php 应用程序编程中,请始终使用 require向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。包含文件省去了大量的工作。例如在 thinkphp 框架 index 入口引入核心代码就是利用 require 引入的。
  3. require 通常放在 php 脚本程序最前面,php 再执行程序前,就会先读取 require语句引入的文件,使之成为 php 脚本文件的一部分。
  4. include 通常用在流程控制的处理部分中,php 脚本在读到 include的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 使用场景
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档