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入门小知识
Mar 24 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
Jun 03 PHP
php多任务程序实例解析
Jul 19 PHP
php bootstrap实现简单登录
Mar 08 PHP
浅谈PHP中关于foreach使用引用变量的坑
Nov 14 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 PHP
PHP时间类完整代码实例
Feb 26 PHP
详解php中流行的rpc框架
May 29 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中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
php生成gif动画的方法
2015/11/05 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
常用jQuery代码分享
2015/07/14 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
基于JS实现checkbox全选功能实例代码
2016/10/31 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
详解jquery和vue对比
2019/04/16 jQuery
node.js express框架简介与实现
2019/07/23 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
python开发环境PyScripter中文乱码问题解决方案
2016/09/11 Python
Python下载网络小说实例代码
2018/02/03 Python
Python如何读取文件中图片格式
2020/01/13 Python
介绍一下.net和Java的特点和区别
2012/09/26 面试题
前台文员的岗位职责
2013/11/14 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
护理见习报告范文
2014/11/03 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL