包含文件include和require在php中的区别(含详解)

一 使用语法和简介

1、include()语法:

include(/path/to/filename)

include()语句将在其被调用的位置处包含一个文件。包含一个文件与在该语句所在位置复制制定文件的数据具有相同内容的效果。

使用include()时可以忽略括号。在条件语句中使用include(),它必须包围在语句块大括号中,或者用其他语句包围符括起来。

2、include_once()语法:

include_once(filename)

include_once() 语句在脚本执行期间包含并运行指定文件。此行为和 include() 语句类似,唯一区别是include_once()会先判断一下这个文件在之前是否已经被包含过,如已经包含,则忽略本次包含。

3、require()语法:

require(filename)

require()在很大程度上与include相同,都是将一个模板文件包含到require调用坐在的位置。require和include之间有两点重要的区别。

一、无论require的位置如何,制定文件都将包含到出现require的脚本中。例如,即使require放在计算结果为假的if语句中,依然会包含指定文件。

二、require出错时,脚本将停止运行,而在使用include的情况下,脚本将继续执行。

4、require_once()语法:

require_once(filename)

require_once() 语句在脚本执行期间包含并运行指定文件。此行为和 require() 语句类似,唯一区别是require_once()会先判断一下这个文件在之前是否已经被包含过,如已经包含,则忽略本次包含。

二 区别总结

1、include()与require()语句区别。

示例一

include('hello.php');echo 'include test final!';//include报错,但是会继续执行,显示:include test final!require('hello.php');echo 'require test final!';//require报错,停止代码的执行。

小结:

⑴ include() 产生一个警告,脚本会继续运行。

⑵ require() 则导致一个致命错误,脚本会停止运行。

换句话说,如果想在遇到丢失文件或遇到错误时停止处理页面就用 require()。如果想在遇到错误时继续处理页面就用 include()。

注意在 PHP 4.3.5 之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。

2、require() 无论如何都会包含文件,而include() 可以有选择地包含

示例二

<?php if(FALSE){   require('x.php'); } if(FALSE){   include('s.php'); }?>

上面的代码中:x.php 一定会被包含,而 s.php 一定不会被包含。

3、include_once()、require_once()与include()、require()的区别

include_once()和require_once()一样,应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。这就是include_once()和require_once()与include() 和require()的主要区别。

三 需要注意的问题

1、路径问题

特别是嵌套包含的时候,一定得注意包含文件的路径。比如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一个文件夹下,这个时候往往很容易出错误。

解决方案:可以使用 dirname(__FILE__) 语句,这句的意思是获得当前脚本的绝对路径。如:require_once(dirname(__FILE__).'/config.php');

2、效率问题

include_once(),require_once(),与include(),require()比较,效率要低一些,因为他们至少得先判断一下这个文件是否已包含。这一问题在PHP5版本有很大改进,不过效率还是有差别。

感谢大家的阅览,希望阅读之后有所进步。

推荐教程:《PHP教程》

更多相关文章

  1. PHP获取文件扩展名的实例解析
  2. php代码如何在html文件里面执行(详解)
  3. php实现文件上传到服务器(含代码)
  4. PHP如何实现断点续传大文件?
  5. PHP如何解压缩zip文件?(代码示例)
  6. PHP如何使用mpdf将html页面转换pdf文件?
  7. 示例PHP实现单文件、多个单文件、多文件上传函数的封装
  8. 学习PHP中使用Session配合Javascript实现文件上传进度条功能
  9. php如何实现网页常见文件上传功能

随机推荐

  1. 如何从sql server上的一个表中删除8500,0
  2. Mysql 范式、索引、视图、事务、sp等概
  3. LINQ之开放式并发控制和事务
  4. MySQL查询过程中出现lost connection to
  5. 求指导,PB12.0 如何用ini文件 连接sql 200
  6. MySQL Cluster在线添加数据节点
  7. Windows安装MySQL Community 5.7.17(非msi
  8. 如何在SQL server中创建excel表并导出
  9. 数据库问题java.sql.SQLException: Colum
  10. Django学习之mysql增删改查