PHP 中的 __FILE__ 和__DIR__常量

 

__DIR__ :当前内容写在哪一个文件就显示这个文件目录php

__FILE__ : 当前内容写在哪一个文件就显示这个文件目录+文件名函数

 


好比文件 b.php 包含以下内容: 
<?php 
$basedir = dirname(__FILE__); 
?> 
若是b.php被其余目录里的a.php文件require 或者 include 去引用的话。 
变量$basedir 的内容仍是b.php所在的那个文件夹的路径。 
而不是变成a.php文件所在的目录。 
dirname(__FILE__) 通常会返回文件所的当前目录到系统根目录的一个目录结构。 
不会返回当前的文件名称。 
dirname(__FILE__) 也可能返回一个 . (当前目录) 
[缘由是 b.php 文件在 http.conf 或者 PHP 配置开发环境的默认WEB目录下. 
好比 WEB_ROOT 为: "C:/root/www/".] 
b.php文件路径为: "C:/root/www/b.php". 

使用方法提示,  
若是重复一次能够把目录往上提高一个层次: 
好比:$d = dirname(dirname(__FILE__)); 
其实就是把一个目录给dirname()作参数了.由于dirname()返回最后的目录不带\\或者是/ 
因此重复使用的时候能够认为 dirname() 把最下层的目录当成文件名来处理了.照常返回 
当前目录的上级目录.这样重复就获得了它的上一级的目录. 

包含获得上一级目录的文件 
include(dirname(__FILE__).'/../filename.php'); ui

此行代码也等价于以下:开发

include(dirname(dirname(__FILE__)).'/filename.php'效率

 

dirname(__FILE__)等价于  __DIR__ require

在实现一样功能的状况下,dirname(__FILE__)多了一层函数调用。因此, __DIR__ 比 dirname(__FILE__) 在效率上有优点变量

 

__FILE__ 和 dirname() 函数从 PHP 4.0.2 就开始启用。sed

__DIR__ 变量则是 PHP5.3.0 新增的。配置

因此,若是你的PHP版本大于等于PHP5.3.0,建议使用 __DIR__。不然,最好仍是用 dirname(__FILE__),以确保程序不会出错。file

 

常见用法:

define('BASE_PATH',str_replace('\\','/',dirname(__FILE__)));定义当前文件路径

相关文章
相关标签/搜索