深入了解PHP的include和require

综述

        在 PHP 中,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码。include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的:a. require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。b. include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

        因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。否则,在框架、CMS 或者复杂的 PHP 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。包含文件省去了大量的工作。这意味着您可以为所有网页创建标准页头、页脚或者菜单文件。然后,在页头需要更新时,您只需更新这个页头包含文件即可。

include

  1. 先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照 include_path 指定的目录寻找;
  2. 如果在 include_path 下没找到该文件则 include 最后才在调用脚本文件所在的目录和当前工作目录下寻找;
  3. 如果最后仍未找到文件则 include 结构会发出一条警告;这一点和 require 不同,后者会发出一个致命错误;
  4. 如果定义了路径——不管是绝对路径(在 Windows 下以盘符或者 \ 开头,在 Unix/Linux 下以 / 开头)还是当前目录的相对路径(以 . 或者 .. 开头)——include_path 都会被完全忽略。

require

  1. require 和 include 几乎完全一样,除了处理失败的方式不同之外;
  2. require 在出错时产生 E_COMPILE_ERROR 级别的错误;
  3. 换句话说也就是require中引用的代码有错误将导致脚本中止而 include 只产生警告(E_WARNING),脚本会继续运行。

区别

  1. include引入文件的时候,如果碰到错误,会给出提示(Warning),并继续运行下边的代码;require引入文件的时候,如果碰到错误,会给出提示(Fatal error),并停止运行下边的代码。
  2. include在执行文件时每次都要进行读取和评估;require文件只处理一次(实际上,文件内容替换require()语句)。
  3. include一般是放在流程控制的处理区段中;require通常放在PHP脚本程序的最前面。
  4. PHP脚本文件在读到include()语句时,才将它包含的文件读取进来;PHP程序在执行前,就会先读入require()语句所引入的文件,使它变成PHP脚本文件的一部分。
  5. include()是有条件包含函数;require()则是无条件包含函数。

总结

        incluce在用到时加载;require在一开始就加载;_once后缀表示已加载的不加载;如果可能执行多次的代码,则使用require()效率比较高;如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句。

发布了154 篇原创文章 · 获赞 404 · 访问量 65万+

猜你喜欢

转载自blog.csdn.net/Zhihua_W/article/details/85685715