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 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
PHP 飞信好友免费短信API接口开源版
Jul 22 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 PHP
php判断linux下程序问题实例
Jul 09 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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执行速率优化技巧小结
2008/03/15 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
php实现上传图片生成缩略图示例
2014/04/13 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
javascript Object与Function使用
2010/01/11 Javascript
jQuery的deferred对象使用详解
2011/08/20 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
OpenCV实现人脸识别
2017/04/07 Python
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
eBay荷兰购物网站:eBay.nl
2020/06/26 全球购物
老师给学生的表扬信
2014/01/17 职场文书
公司请假条范文
2014/04/11 职场文书
入股协议书
2014/04/14 职场文书
检讨书范文500字
2015/01/28 职场文书
销售会议开幕词
2015/01/28 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL