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 10 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
php获取中文拼音首字母类和函数分享
Apr 24 PHP
php中文字符串截取方法实例总结
Sep 30 PHP
PHP执行linux命令常用函数汇总
Feb 02 PHP
基于PHP实现数据分页显示功能
May 26 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
Thinkphp框架中D方法与M方法的区别
Dec 23 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
PHP简单实现二维数组的矩阵转置操作示例
Nov 24 PHP
详解php协程知识点
Sep 21 PHP
php实现微信公众号企业转账功能
Oct 01 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编程函数安全篇
2013/01/08 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
jQuery链使用指南
2015/01/20 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
vue指令做滚动加载和监听等
2019/05/26 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
2020/12/19 Vue.js
Python实现将Excel转换成为image的方法
2018/10/23 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
2015年三万活动总结
2015/03/25 职场文书
涨价通知
2015/04/23 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
深入详解JS函数的柯里化
2021/06/09 Javascript
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
青岛市的收音机研制与生产
2022/04/07 无线电
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python