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&amp;&amp;mysql)六
Oct 09 PHP
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
php HtmlReplace输入过滤安全函数
Jul 03 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
Aug 01 PHP
php实现的漂亮分页方法
Apr 17 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
Smarty foreach控制循环次数的一些方法
Jul 01 PHP
php+mysql查询实现无限下级分类树输出示例
Oct 03 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
Oct 10 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
第九节 绑定 [9]
2006/10/09 PHP
关于文本留言本的分页代码
2006/10/09 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python中实现结构相似的函数调用方法
2015/03/10 Python
Python选课系统开发程序
2016/09/02 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
python实现网页录音效果
2020/10/26 Python
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
深入浅析React中diff算法
2021/05/19 Javascript
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python