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 相关文章推荐
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
php连接函数implode与分割explode的深入解析
Jun 26 PHP
PHP的基本常识小结
Jul 05 PHP
PHPAnalysis中文分词类详解
Jun 13 PHP
php基于mcrypt的加密解密实例
Oct 27 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
JS的反射问题
2010/04/07 Javascript
javascript测试题练习代码
2012/10/10 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
python根据日期返回星期几的方法
2015/07/06 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
类的返射机制中的包及核心类
2016/09/12 面试题
党员四风剖析材料
2014/08/27 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
作风建设年度心得体会
2014/10/29 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
python程序的组织结构详解
2021/12/06 Python
解决Redis启动警告问题
2022/02/24 Redis
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js