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 中文版
Oct 28 PHP
php URL验证正则表达式
Jul 19 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
Nov 24 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
PHP 信号管理知识整理汇总
Feb 19 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
Yii 2.0如何使用页面缓存方法示例
May 23 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 PHP
thinkphp5使html5实现动态跳转的例子
Oct 16 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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下网站防IP攻击代码,超级实用
2010/10/24 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
Bootstrap插件全集
2016/07/18 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
js如何验证密码强度
2020/03/18 Javascript
python实现八大排序算法(2)
2017/09/14 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
python 通过文件夹导入包的操作
2020/06/01 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
银行实习自我鉴定
2013/10/12 职场文书
外语专业毕业生个人的自荐信
2013/11/19 职场文书
银行财务部实习生的自我鉴定
2013/11/27 职场文书
给女朋友的道歉信
2014/01/10 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
幼儿园小班评语
2014/04/18 职场文书
抗洪救灾标语
2014/10/08 职场文书
圣诞节开幕词
2015/01/29 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android