php的魔术变量__DIR__和dirname()

    |     2016年4月12日   |   学习偶记   |     评论已关闭   |    3931

今天在研究荒野无灯的远程图片下载插件,里面的header.php中有一句:
$bootstrap_file = dirname(dirname(dirname(__DIR__))). '/wp-admin/admin.php';
这里用了3个dirname,大家都知道dirname是返回文件的目录名,但是大家都忽略了这个函数一次只会返回一级目录
__DIR__则是php5.3版本新增的一个魔术变量,指向当前执行的PHP脚本所在的目录。

Hacklog Remote Image Autosave 下载远程图片wordpress插件

那么让我们看看这里为什么要用3个dirname吧:

$txt = '__DIR__ ='.__DIR__.' dirname(__DIR__) ='.dirname(__DIR__).' dirname(dirname(__DIR__))='.dirname(dirname(__DIR__)).' dirname(dirname(dirname(__DIR__))) ='.dirname(dirname(dirname(__DIR__)));

显示结果:

__DIR__ =D:\UPUPW_AP5.4\htdocs\wp\wp-content\plugins\hacklog-remote-image-autosave
dirname(__DIR__) =D:\UPUPW_AP5.4\htdocs\wp\wp-content\plugins
dirname(dirname(__DIR__))=D:\UPUPW_AP5.4\htdocs\wp\wp-content
dirname(dirname(dirname(__DIR__))) =D:\UPUPW_AP5.4\htdocs\wp

噢!评论已关闭。