php中include与require区别
来源:互联网 发布:汉诺塔问题的算法设计 编辑:程序博客网 时间:2024/05/19 21:15
网上太多关于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.6171875echo '</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.6171875print_r($endTime-$startTime);*/
2.在包含错误处理方面
在包含失败 时,include()产生一个警告并继续执行,而require()则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用 require(),否则就用include()。
include "a9.inc";//<span style="font-family: Arial, Helvetica, sans-serif;">a9.inc不存在会产生一个警告</span>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.被包含文件的变量的作用域,随着包含位置的变化而变化。比如如果是在函数中包含,被包含文件的变量是局部变量
备注:搞编程,要有一颗严谨负责的心
1 0
- PHP中include()与require()的区别
- php中include()与require()的区别
- php中require与include的区别
- PHP中require与include的区别
- PHP中include()与require()的区别
- php中require()与include()的区别
- PHP中include()与require()的区别
- PHP中include与require的区别
- php中include与require区别
- php中include与require的区别
- PHP中include()与require()的区别
- PHP中include()与require()的区别
- Php中include与require的区别
- PHP中include 与 require 的区别
- [PHP]PHP中include()与require()的区别
- PHP 中 require、require_once、include、include_once介绍与区别
- PHP中include与require的用法区别
- PHP中include与require的用法区别
- 冒泡法及其改进的java实现
- 博客网站设定了校验密码的规则,编写方法检验一个字符串是否是合 法的密码。规则如下: 密码长度在 8-16 之间 密码只能包含字母和数字 密码必须存在至少 2 个数字 如果用户输入的密码符合
- CCF-201512-3 画图
- eclipse 代码恢复到历史版本
- 230. Kth Smallest Element in a BST
- php中include与require区别
- opencv轮廓检测之椭圆检测-----算法篇(8) Hough transformation检测椭圆
- BZOJ4027: [HEOI2015]兔子与樱花
- Codeforces Round #346 (Div. 2) B. Qualifying Contest
- 代码优化:重复代码封装成函数
- The type java.util.Map$Entry cannot be resolved. It is indirectly referenced
- 三峰记
- java中的static作用
- mysql事务处理