PHP 引用文件技巧

yipeiwu_com5年前PHP代码库
我们知道,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 if 想到的些问题

复制代码 代码如下:<?php  /* PHP code */  header("Content-type: text/...

解析关于java,php以及html的所有文件编码与乱码的处理方法汇总

php文件中在乱码(如a.php文件在浏览器乱码):header("Content-Type:text/html;charset=utf-8")是设置网页的。mysql_query("s...

PHP的Yii框架中Model模型的学习教程

模型是 MVC 模式中的一部分, 是代表业务数据、规则和逻辑的对象。 模型是 CModel 或其子类的实例。模型用于保持数据以及与其相关的业务逻辑。 模型是单独的数据对象。它可以是数据表...

PHP实现克鲁斯卡尔算法实例解析

本文实例展示了PHP实现的格鲁斯卡尔算法(kruscal)的实现方法,分享给大家供大家参考。相信对于大家的PHP程序设计有一定的借鉴价值。 具体代码如下: <?php...

php 伪造本地文件包含漏洞的代码

代码: 复制代码 代码如下: <?php $page=$_GET['page']; include($page.'php'); ?> 你可以这样使用 http://www....