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 相关文章推荐
强烈推荐:php.ini中文版(2)
Oct 09 PHP
PHP脚本的10个技巧(8)
Oct 09 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
Dec 31 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
Sep 06 PHP
php查询ip所在地的方法
Dec 05 PHP
Yii2 RESTful中api的使用及开发实例详解
Jul 06 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
php实现socket推送技术的示例
Dec 20 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
Oct 11 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
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
介绍php设计模式中的工厂模式
2008/06/12 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
广告显示判断
2006/08/31 Javascript
在JavaScript中实现命名空间
2006/11/23 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
python入门教程之基本算术运算符
2020/11/13 Python
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
上海微创软件面试题
2012/06/14 面试题
年会活动策划方案
2014/01/23 职场文书
中学生班主任评语
2014/01/30 职场文书
项目合作协议书
2014/04/16 职场文书
招标授权委托书样本
2014/09/23 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby