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空间不支持socket但支持curl时recaptcha的用法
Nov 07 PHP
PHP中设置时区方法小结
Jun 03 PHP
工厂模式在Zend Framework中应用介绍
Jul 10 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
php实现的网页版剪刀石头布游戏示例
Nov 25 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
PHP实现登录注册之BootStrap表单功能
Sep 03 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP convert_cyr_string()函数讲解
Feb 13 PHP
PHP设计模式之策略模式原理与用法实例分析
Apr 04 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 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
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
js 获取Listbox选择的值的代码
2010/04/15 Javascript
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
js 计算图片内点个数的示例代码
2019/04/04 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
jQuery实现开关灯效果
2020/08/02 jQuery
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
python中 chr unichr ord函数的实例详解
2017/08/06 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
Python3 assert断言实现原理解析
2020/03/02 Python
python pillow库的基础使用教程
2021/01/13 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
应届生新闻编辑求职信
2013/11/19 职场文书
大专生自我评价
2014/01/28 职场文书
保险内勤岗位职责
2014/04/05 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL