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 相关文章推荐
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
php 解压rar文件及zip文件的方法
May 05 PHP
PHP调用MySQL存储过程并返回值的方法
Dec 26 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 PHP
PHP错误机制知识汇总
Mar 24 PHP
PHP面向对象中new self()与 new static()的区别浅析
Aug 17 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
使用PHP开发留言板功能
Nov 19 PHP
让你的PHP,APACHE,NGINX支持大文件上传
Mar 09 PHP
php中pcntl_fork详解
Apr 01 PHP
php字符串倒叙
Apr 01 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 cc攻击代码与防范方法
2012/10/18 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
基于postman获取动态数据过程详解
2020/09/08 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现端口复用实例代码
2014/07/03 Python
Python重新引入被覆盖的自带function
2014/07/16 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
解决python os.mkdir创建目录失败的问题
2018/10/16 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
优秀员工表扬信
2014/01/17 职场文书
会计顶岗实习心得
2014/01/25 职场文书
大型营销活动计划书
2014/04/28 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python