PHP中include/require/include_once/require_once使用心得


Posted in PHP onAugust 28, 2016

最近一直在抽时间来学习PHP,据说PHP是世界上最好的语言,于是各大论坛炸开了锅!哈哈,我们这里不是来讨论哪门语言是最好的语言,我们是在学习PHP中经常使用到的文件引入的四种方式的特点及区别!

相信大家在使用PHP时经常看到include a.php、include_once a.php、require a.php或者require_once a.php类似这样的写法吧?

我们一起来学习和总结一下这几个语句的作用及特点!

include

使用方法:

include "test.php";

一般是放在流程控制的处理部分中使用,将文件内容引入。PHP程序在遇到include语句时,才将它读进来,这种方式可以把程序执行时的流程简单化,便于复用代码!

include在引入不存文件时产生一个警告且脚本还会继续执行,执行时需要引用的文件每次都要进行读取和评估,且有返回值,比如:

if(FALSE) { 
  include 'test.php'; // test.php不会被引入 
} 
 
<?php
 include 'test.php';// 现在的条件是test.php不存在
 echo '标哥的技术博客'; // 仍然执行下面的代码
?>
 
$ret = include "QueryPhone.php";
if (!empty($ret)) {
  echo "文件引入成功";
} else {
  echo "文件引入失败";
}

include_once

使用方法:

include_once "test.php";

加了_once之后,表示文件已引入的将不再引入。include_once引入文件的时候,如果碰到错误会给出提示并继续运行下边的代码!

他的使用方式与include差不多,不同的是include_once只引入一篇!

require

使用方法:

require "test.php";

一般是放在PHP文件的最前面将文件内容引入,PHP会将require的文件内容先引入成功当前文件的一部分,然后才开始执行后面的代码。

require在引入文件失败时会给出提示且脚本会被中断执行。比如:

// 文件是不存在的
require "QueryPhone.php";
 
echo "没有被打印";

require_once

使用方法:

require_once "test.php";

一般是放在PHP文件的最前面将文件内容引入,PHP会先将待引入的文件内容引入到本文件中,如果引入失败则不会继续往下执行;如果引入成功,则可正常执行下面的代码。

它的使用方式与require差不多,不同的是require_once只会引入一次,如果之前已引入过,则不会再引入!

综合例子

假设有一个文件中a.php,里面只有一句echo file name is a;

<?php
 
include 'a.php';
require 'a.php';
 
include_once 'a.php';
require_once 'a.php';

那么上面这四个引入会打印多少行呢?其实只会打印前面的两句代码执行结果,因此只有两个:

file name is a
file name is a

下面我们来交换一下前两行与后两行试试:

<?php
 
include_once 'a.php';
require_once 'a.php';
 
include 'a.php';
require 'a.php';

那么上面这四句会打印出多少行呢?自然是四行,因为前两行在此之前并没有引入过,因此会引入一次,而include/require虽然之前引入过,还会再引入,因此打印结果:

file name is a
file name is a
file name is a
file name is a

注意事项

从理论上说,include和require后面加不加括号对执行的结果并没有什么区别,但是加上括号效率相对会较低,所以通常后面能不加括号就不要添加括号了!

PHP 相关文章推荐
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
PHP编程获取各个时间段具体时间的方法
May 26 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
Nov 30 PHP
PHP实现的杨辉三角求解算法分析
Mar 11 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 PHP
php的单例模式及应用场景详解
Feb 27 PHP
PHP常用的三种设计模式汇总
Aug 28 #PHP
Apache PHP MySql安装配置图文教程
Aug 27 #PHP
php微信开发接入
Aug 27 #PHP
php微信开发自定义菜单
Aug 27 #PHP
PHP7新特性foreach 修改示例介绍
Aug 26 #PHP
简单的自定义php模板引擎
Aug 26 #PHP
PHP flush 函数使用注意事项
Aug 26 #PHP
You might like
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
vue地区选择组件教程详解
2018/05/04 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
python中使用正则表达式的连接符示例代码
2017/10/10 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
学Python 3的理由和必要性
2019/11/19 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
通过Python实现一个简单的html页面
2020/05/16 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
农村改厕实施方案
2014/03/22 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
优秀班组申报材料
2014/12/25 职场文书
报名委托书
2015/01/29 职场文书
追悼会悼词大全
2015/06/23 职场文书