PHP中include和require的区别实例分析


Posted in PHP onMay 07, 2017

先编辑command.php文件

echo 'hello'.PHP_EOL;

然后编辑console.php文件

for($i=1;$i<=3;++$i){
	require 'command1.php';
}

原本想要包含并执行这个echo,没想到写错了文件名,如果是require,会报出这样的错误:

Warning: require(command1.php): failed to open stream: No such file or directory in console.php on line 4

Fatal error: require(): Failed opening required 'command1.php' (include_path='.') in console.php on line 4
PHP Warning: require(command1.php): failed to open stream: No such file or directory in console.php on line 4
PHP Fatal error: require(): Failed opening required 'command1.php' (include_path='.') in console.php on line 4

如果把require改为include

for($i=1;$i<=3;++$i){
	include 'command1.php';
}

会报出这样的错误:

Warning: include(command1.php): failed to open stream: No such file or directory in console.php on line 4

Warning: include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4

Warning: include(command1.php): failed to open stream: No such file or directory in console.php on line 4

Warning: include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4

Warning: include(command1.php): failed to open stream: No such file or directory in console.php on line 4

Warning: include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4
PHP Warning: include(command1.php): failed to open stream: No such file or directory in console.php on line 4
PHP Warning: include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4
PHP Warning: include(command1.php): failed to open stream: No such file or directory in console.php on line 4
PHP Warning: include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4
PHP Warning: include(command1.php): failed to open stream: No such file or directory in console.php on line 4
PHP Warning: include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4

如果使用require_once或者include_once,只要包含路径正确,那么循环只执行一次。

总结:

使用require,如果文件没有包含成功,就会报出一个fatal error,整个程序就中止了。

使用include,如果文件没有包含成功,就会报出一个普通的warning,之后的代码仍会执行。

如果你的Web程序使用了MVC这种对文件包含强依赖的设计方法,请使用require_once。

PHP 相关文章推荐
关于php循环跳出的问题
Jul 01 PHP
php文件上传的简单实例
Oct 19 PHP
php对称加密算法示例
May 07 PHP
查找php配置文件php.ini所在路径的二种方法
May 26 PHP
CI框架给视图添加动态数据
Dec 01 PHP
Laravel 5 学习笔记
Mar 06 PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 PHP
PHP strip_tags保留多个HTML标签的方法
May 22 PHP
如何离线执行php任务
Feb 21 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 PHP
php实现的数组转xml案例分析
Sep 28 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
Nov 09 PHP
自制PHP框架之设计模式
May 07 #PHP
自制PHP框架之模型与数据库
May 07 #PHP
自制PHP框架之路由与控制器
May 07 #PHP
PHP-CGI远程代码执行漏洞分析与防范
May 07 #PHP
PHP关键特性之命名空间实例详解
May 06 #PHP
PHP 中使用explode()函数切割字符串为数组的示例
May 06 #PHP
Thinkphp 空操作、空控制器、命名空间(详解)
May 05 #PHP
You might like
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
js loading加载效果实现代码
2009/11/24 Javascript
Ext 今日学习总结
2010/09/19 Javascript
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
js代码实现随机颜色的小方块
2015/07/30 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
python使用心得之获得github代码库列表
2014/06/25 Python
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
python学生信息管理系统(完整版)
2020/04/05 Python
Python subprocess库的使用详解
2018/10/26 Python
python实现批量文件重命名
2019/10/31 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
python生成大写32位uuid代码
2020/03/03 Python
python RSA加密的示例
2020/12/09 Python
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
村安全生产责任书
2014/08/25 职场文书
门卫岗位职责
2015/02/09 职场文书