PHP 引用文件技巧


Posted in PHP onMarch 02, 2010

我们知道,java中有包的概念,而.NET中则有更加方便的DLL程序集引用的概念,通过这些以打包形式组合在一起的对象集合,我们可以很方便的在自己的类中引用其他地方定义的类或其他对象,但由于PHP中没有相应的概念,所以在需要引用其他文件中定义的对象时,PHP程序员最常用的两个函数莫过于require_once和include了,通过这两个函数,我们可以使用其他类库中定义的类等对象。但很多人在使用包含相同目录下的其他文件时,仅仅简单使用下面的代码进行文件引用:

include('include.php');

当然这种方式并没有错误,只不过在效率上它比下面的方式要稍稍差些:
include(realpath(dirname(_FILE_)).DIRECTORY_SEPARATOR.'include.php');

这种方式我们可能需要输入更多一些,但相对于前面那种需要PHP引擎去include_path 中迭代查找所有名称为'include.php'才能查找到相应对象来说,dirname(__FILE__)这种绝对路径的指定会让系统迅速定位到相应文件。

在PHP中常量__FILE__ 其实跟C#中的AppDomain.CurrentDomain.BaseDirectory非常类似,它返回的是当前代码正在执行的代码所在文件的绝对路径。而函数dirname()则返回其父文件夹路径。

另外一个更查找效率高,并且书写简单的方式是include('./include.php'),这相当于告诉系统查找当前路径下的'include.php'文件。

在大型系统中我们常常使用另外一个更好的方式,我们常常在路由文件或其他初始化文件中加入如下代码:

define('APP_PATH',realpath(dirname(_FILE_)));

这相当于给系统添加了一个全局变量来指出系统根目录,当我们后面需要引用某具体路径下的文件时我们就可以使用如下代码了:
include(APP_PATH.DIRECTORY_SEPARATOR.'models'.'User.php');

希望这个小小的总结能对你有所帮助!
作者:Sean Zhu
出处:http://jujusharp.cnblogs.com
PHP 相关文章推荐
杏林同学录(五)
Oct 09 PHP
html中select语句读取mysql表中内容
Oct 09 PHP
通过PHP CLI实现简单的数据库实时监控调度
Jul 01 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
单点登录 Ucenter示例分析
Oct 29 PHP
PHP实现的MongoDB数据库操作类分享
May 12 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
CodeIgniter视图使用注意事项
Jan 20 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
Feb 10 PHP
php下过滤html代码的函数 提高程序安全性
Mar 02 #PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 #PHP
PHP clearstatcache()函数详解
Mar 02 #PHP
PHP strtok()函数的优点分析
Mar 02 #PHP
关于PHP5 Session生命周期介绍
Mar 02 #PHP
PHP正则的Unknown Modifier错误解决方法
Mar 02 #PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
Mar 02 #PHP
You might like
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
php常用表单验证类用法实例
2015/06/18 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
python3中数组逆序输出方法
2020/12/01 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
学校消防演习方案
2014/02/19 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
开展创先争优活动总结
2014/08/28 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis