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 相关文章推荐
ajax+php打造进度条 readyState各状态
Mar 20 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
phpmailer中文乱码问题的解决方法
Apr 22 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
基于PHP后台的Android新闻浏览客户端
May 23 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
多个Laravel项目如何共用migrations详解
Sep 25 PHP
PHP匿名函数(闭包函数)详解
Mar 22 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 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
怎么使 Mysql 数据同步
2006/10/09 PHP
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
php错误、异常处理机制(补充)
2012/05/07 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
javascript静态的url如何传递
2007/05/03 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
深入浅析python 协程与go协程的区别
2019/05/09 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
python的等深分箱实例
2019/11/22 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
电子信息毕业生自荐信
2013/11/16 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
继承公证书格式
2015/01/26 职场文书
起诉意见书范文
2015/05/19 职场文书
2019旅游导游工作总结
2019/06/27 职场文书