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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
Oct 09 PHP
PHP以mysqli方式连接类完整代码实例
Jul 15 PHP
php查看当前Session的ID实例
Mar 16 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
laravel 解决多库下的DB::transaction()事务失效问题
Oct 21 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
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
nodejs实现简单的gulp打包
2017/12/21 NodeJs
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
使用python判断你是青少年还是老年人
2018/11/29 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
办公室文秘自我鉴定
2013/09/21 职场文书
在校实习生求职信
2014/06/18 职场文书
个人授权委托书范文
2014/09/21 职场文书
毕业设计工作总结
2015/08/14 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
Python爬虫基础讲解之请求
2021/05/13 Python
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android