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中操作MySQL数据库的一些要注意的问题
Oct 09 PHP
php读取30天之内的根据算法排序的代码
Apr 06 PHP
PHP读取ACCESS数据到MYSQL的代码
May 11 PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
Nov 10 PHP
PHP 登录记住密码实现思路
May 07 PHP
PHP+jQuery实现自动补全功能源码
May 15 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
Apache服务器下防止图片盗链的办法
Jul 06 PHP
深入浅析yii2-gii自定义模板的方法
Apr 26 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
Apr 30 PHP
PHP实现非阻塞模式的方法分析
Jul 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
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
php格式化电话号码的方法
2015/04/24 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
IE 下的只读 innerHTML
2009/08/21 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
python抓取网页图片并放到指定文件夹
2014/04/24 Python
itchat接口使用示例
2017/10/23 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
Python中qutip用法示例详解
2020/10/02 Python
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
校班主任推荐信范文
2013/12/03 职场文书
人事专员工作职责
2014/02/22 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
社区矫正工作方案
2014/06/04 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
机器人总动员观后感
2015/06/09 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
MySQL创建定时任务
2022/01/22 MySQL
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL