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 相关文章推荐
php数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
php 随机排序广告的实现代码
May 09 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 PHP
PHP实现在线阅读PDF文件的方法
Jun 23 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
May 14 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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
使用php4加速网络传输
2006/10/09 PHP
基于php-fpm的配置详解
2013/06/03 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
PHP使用Redis实现Session共享的实现示例
2019/05/12 PHP
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
HTML Dom与Css控制方法
2010/10/25 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
Vuex实现数据共享的方法
2019/12/20 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
积极分子思想汇报
2014/01/04 职场文书
组工干部演讲稿
2014/09/02 职场文书
乡镇党委书记个人整改措施
2014/09/15 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书