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 闭包特性在实际应用中的问题
Oct 30 PHP
关于php fread()使用技巧
Jan 22 PHP
php防攻击代码升级版
Dec 29 PHP
使用array mutisort 实现按某字段对数据排序
Jun 18 PHP
ThinkPHP连接数据库及主从数据库的设置教程
Aug 22 PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
php简单判断文本编码的方法
Jul 30 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
Dec 15 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
php中访问修饰符的知识点总结
Jan 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
Syphon 使用方法
2021/03/03 冲泡冲煮
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
Python读写配置文件的方法
2015/06/03 Python
python 字符串只保留汉字的方法
2018/11/16 Python
利用python实现周期财务统计可视化
2019/08/25 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
决定成败的关键——创业计划书
2014/01/24 职场文书
工程招投标邀请书
2014/01/26 职场文书
司马光教学反思
2014/02/01 职场文书
初中军训感想300字
2014/03/05 职场文书
大学新生军训自我鉴定
2014/03/18 职场文书
兽医医药专业求职信
2014/07/27 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
用Python生成会跳舞的美女
2022/01/18 Python