• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP 中 include 和 require 的区别详解

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

前言

在做程序设计的时候避免不了要去引用外部文件,在 PHP 中引入文件的方式有很多种,这里详细说一下 include ;require ;include_oncerequire_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';

使用场景

    1. 如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。
    2. 在框架复杂的 php 应用程序编程中,请始终使用 require
      向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。包含文件省去了大量的工作。例如在 thinkphp 框架 index 入口引入核心代码就是利用 require 引入的。
    3. require 通常放在 php 脚本程序最前面,php 再执行程序前,就会先读取 require 语句引入的文件,使之成为 php 脚本文件的一部分。
    4. include 通常用在流程控制的处理部分中,php 脚本在读到 include
      的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap