以下内容转自:https://blog.csdn.net/hsd2012/article/details/51089785

网上太多关于php中include与require区别。其实说的都是经不起验证的。随意找了一个截图如下:

还信誓旦旦的解释:include()是有条件包含函数,而require()则是无条件包含函数。

但是这是很久之前的事了,现在的php,require与include确实有区别,笔者测试的是5.3以上版本测试结果如下:

发现这两种结构除了在性能和在如何处理包含失败之外,其他完全一样。

1.在性能方面

测试发现当require与include在性能方面差别不大,觉得这方面可以不用考虑(可能是我测试的样例不够多吧)

eg:

 <pre name="code" class="php">$startTime=time();
$startMemoryUsed=memory_get_usage();
require "a1.inc";
$endMemoryUsed=memory_get_usage();
$endTime=time();
$usedMemory=($endMemoryUsed-$startMemoryUsed)/1024;
print_r($usedMemory);//1.6171875
echo '</br>';
print_r($endTime-$startTime);
/*$startTime=time();
$startMemoryUsed=memory_get_usage();
include "a1.inc";
$endMemoryUsed=memory_get_usage();
$endTime=time();
$usedMemory=($endMemoryUsed-$startMemoryUsed)/1024;
print_r($usedMemory);//1.6171875
print_r($endTime-$startTime);*/

2.在包含错误处理方面

在包含失败 时,include()产生一个警告并继续执行,而require()则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用 require(),否则就用include()。

  1. include "a9.inc";//<span style="font-family: Arial, Helvetica, sans-serif;">a9.inc不存在会产生一个警告</span>
  2.  
  3. require "a10.inc";//a10.inc不存在会产生一个致命错误

补充:include,require包含作用域

文件a2.inc

 $name="lidquan";
class Teacher{
public function show(){
echo 'my job is teacher</br>';
}
}
function showName(){
echo 'a2.inc 里面的方法';
}

文件 index.php

 function a(){
require "a2.inc";
$teacher =new Teacher();
$teacher->show();
} a();//正常调用 showName();//正常调用 var_dump($name);//提示$name没有定义

结果截图如下:


关于包含文件后作用域问题总结如下:

1.所有在被包含文件中定义的函数和类在被包含后,在包含文件里都具有全局作用域

2.被包含文件的变量的作用域,随着包含位置的变化而变化。比如如果是在函数中包含,被包含文件的变量是局部变量

php 中 include 与 require 的区别的更多相关文章

  1. php中include()和require()的区别

    1.引用文件方式 对 include()来说,在include()执行时文件每次都要进行读取和评估:而对于require()来说,文件只处理一次(实际上,文件内容替换 了require()语句.这就意 ...

  2. PHP中include和require的区别

    include和require的区别,其实两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出. 根据测试,win32 ...

  3. PHP 中 include 和 require 的区别详解

    require() 语句的性能与 include() 相类似,都是包括并运行指定文件.除了处理失败的方式不同之外.require 在出错时产生 E_COMPILE_ERROR 级别的错误,终止脚本运行 ...

  4. PHP中include和require的区别详解

    1.概要 require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估:而对于require()来说, ...

  5. 2016/3/27 PHP中include和require的区别详解

    1.概要 require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估:而对于require()来说, ...

  6. PHP中include()与require()的区别说明

    require 的使用方法如 require("MyRequireFile.php"); .这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require ...

  7. PHP中include()与require()的区别

    require 的使用方法如 require("MyRequireFile.php"); .这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require ...

  8. php中include和require的区别(整理)

      require 的使用方法如 require("MyRequireFile.php"); .这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 requi ...

  9. PHP 中 include() 与 require() 的区别说明

    引用文件的方法有两种:require 及 include.两种方式提供不同的使用弹性. require 的使用方法如 require("MyRequireFile.php"); . ...

随机推荐

  1. 5.solr学习速成之语法

    常用查询参数 q - 查询字符串,必须的.   fl - 指定返回那些字段内容,用逗号或空格分隔多个.  start - 返回第一条记录在完整找到结果中的偏移位置,0开始.   rows - 指定返回 ...

  2. 凸优化 Convex Optimization PDF 扫描文字识别版

    凸优化理论 Convex Optimization 清华大学出版社 王书宁许窒黄晓霖译 Stephen Boyd Lieven Vandenbergt原著 2013 年l 月第1 版 下载链接 链接: ...

  3. java中的 equals 与 ==

    Java中的"=="永远比较的是两个对象是否是同一个对象(引用指向同一块内存就是同一个对象) Java中equals() 在使用必须与类挂上钩,不能单独使用.有的人这样理解&quo ...

  4. 【原】Coursera—Andrew Ng机器学习—Week 1 习题—Linear Regression with One Variable 单变量线性回归

    Question 1 Consider the problem of predicting how well a student does in her second year of college/ ...

  5. ubuntu 14.04 安装压缩包版mysql

    既有环境: 1)下载MySQL Community Server 5.6.17 压缩版(mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz) 2)安装目录: /opt/ ...

  6. 简单的互斥同步方式——synchronized关键字详解

    目录 1. 关于synchronized关键字 2. synchronized的原理和实现细节 2.1 synchronized可以用在那些地方 2.2 synchronized是如何实现线程互斥访问 ...

  7. 2-1 CPU多级缓存-缓存一致性.mkv

  8. Gym 101606 F-Flipping Coins(概率dp)

    参考博客:http://www.cnblogs.com/kang000/p/8571071.html  (这篇博客写的真的走心,ORZ) 题意有n个硬币排成一排,开始的时候所有的硬币都是正面朝下,你必 ...

  9. HTTP 协议中 URI 和 URL 有什么区别?

    HTTP 协议中 URI 和 URL 有什么区别? HTTP = Hyper Text Transfer ProtocolURI = Universal Resource IdentifierURL ...

  10. lucene和solr

    我们为什么要用solr呢? 1.solr已经将整个索引操作功能封装好了的搜索引擎系统(企业级搜索引擎产品) 2.solr可以部署到单独的服务器上(WEB服务),它可以提供服务,我们的业务系统就只要发送 ...