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循环输出数据库内容的代码
May 24 PHP
PHP中str_replace函数使用小结
Oct 11 PHP
PHP处理Oracle的CLOB实例
Nov 03 PHP
php计算两个坐标(经度,纬度)之间距离的方法
Apr 17 PHP
thinkphp如何获取客户端IP
Nov 03 PHP
盘点PHP和ASP.NET的10大对比!
Dec 24 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 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使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
python操作ie登陆土豆网的方法
2015/05/09 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
python二维键值数组生成转json的例子
2019/12/06 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
2021/01/24 Python
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
const和static readonly区别
2013/05/20 面试题
高中毕业生生活的自我评价
2013/12/08 职场文书
电子商务助理求职自荐信
2014/04/10 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers
MySQL 5.7常见数据类型
2021/07/15 MySQL
python3中apply函数和lambda函数的使用详解
2022/02/28 Python