码迷,mamicode.com
首页 > Web开发 > 详细

通过__DIR__和 getcwd()的不同之处来剖析像ThinkPHP等单一入口文件类框架模式

时间:2015-04-03 01:42:57      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

__DIR__,PHP5.3的全局预定义常量,为当前文件的所在目录的绝对路径形式的表示,类似的还有__FILE__,为访问本文件的绝对路径。

getcwd()为get current working directory,即当前执行的脚本的目录位置,何为当前执行的脚本。

    index.php

<?php
    require_once(‘lib/init.php‘);
?>

   lib/ init.php

<?php
    echo __DIR__;
    echo ‘<br/>‘
    echo getcwd();
?>

   结果会是:

    /xxx/xxx/lib  init.php所在的目录

    /xxx/xxx  index.php所在的目录

    __DIR__和其所在的文件有直接关系,getcwd()则与当前所执行的脚本存在直接联系,虽然getcwd()是在lib/init.php中但其被执行时是通过index.php引入执行的,即一直都是index.php为当前的活动脚本,其所处的目录为活动目录。

其实还有个很好的验证的方法,比如Thinkphp的单一入口模式,index.php承载了各种请求的入口,说白了你的所有请求都是被此入口脚本去做引入框架进行响应的,所以,当前活动目录肯定是此入口文件所在的目录,你可以在其下的任何一个控制器里输出__DIR__和getcwd(),你会发现__DIR__是此控制器脚本文件的目录位置,而getcwd()则是此入口文件所在的目录

通过__DIR__和 getcwd()的不同之处来剖析像ThinkPHP等单一入口文件类框架模式

标签:

原文地址:http://my.oschina.net/sallency/blog/395330

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!