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 30 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
PHP daddslashes 使用方法介绍
Oct 26 PHP
PHP中的函数-- foreach()的用法详解
Jun 24 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
smarty模板引擎基础知识入门
Mar 30 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
May 27 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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
PHP分页显示制作详细讲解
2006/10/09 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
2012/12/15 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
详解tensorflow实现迁移学习实例
2018/02/10 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
Python换行与不换行的输出实例
2020/02/19 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
演讲开场白台词大全
2015/05/29 职场文书
党小组鉴定意见
2015/06/02 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
深入探讨opencv图像矫正算法实战
2021/05/21 Python
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL