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代码优化及php相关问题总结
Oct 09 PHP
截获网站title标签之家内容的例子
Oct 09 PHP
php读取xml实例代码
Jan 28 PHP
php安全配置 如何配置使其更安全
Dec 16 PHP
基于PHP实现假装商品限时抢购繁忙的效果
Oct 16 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
php PDO异常处理详解
Nov 20 PHP
php 从一个数组中随机的取出若干个不同的数实例
Dec 31 PHP
php之可变函数的实例详解
Sep 13 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
Apr 10 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
Oct 17 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 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
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
详解vue 命名视图
2019/08/14 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
Yahoo-PHP面试题2
2014/12/06 面试题
领导干部培训感言
2014/01/23 职场文书
2015年市场部工作总结
2015/04/30 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android
redis复制有可能碰到的问题汇总
2022/04/03 Redis
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis