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 09 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
php权重计算方法代码分享
Jan 09 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
Jun 25 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 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
?繁体转换的class
2006/10/09 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
JScript的条件编译
2007/05/29 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
Python批量更改文件名的实现方法
2017/10/29 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
python3.7 sys模块的具体使用
2019/07/22 Python
python实现桌面托盘气泡提示
2019/07/29 Python
基于python3监控服务器状态进行邮件报警
2019/10/19 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
工作中的自我评价如何写好
2013/10/28 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
史上最牛辞职信
2015/05/13 职场文书
二审答辩状格式
2015/05/22 职场文书
高三化学教学反思
2016/02/22 职场文书
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers