截止到PHP7.4,通过官方手册查知,目前PHP一共有八个魔术常量,分别为:__LINE__,__FILE__,__DIR__,__FUNCTION__,__CLASS__,__TRAIT__,__METHOD__,__NAMESPACE__。
__DIR__ 是其中用的比较频繁的一个,含义为:文件所在的目录(如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__) 。除非是根目录,否则目录中名不包括末尾的斜杠。),说的直白一点就是,它返回的是:这个常量所在的文件的绝对路径。
单独看定义可能不是很好理解,下面举两个例子进行说明,假设使用windows操作系统,已部署好站点在c:\wwwroot\目录。
示例1: 在网站根目录有 1.php,访问/1.php时:
在1.php输入 var_dump(__DIR__),则输出为: C:\wwwroot
示例2: 在网站根目录有1.php,另有文件夹a,在a下面有b.php,在1.php包含了访问a/b.php时:
在b.php输入 var_dump(__DIR__),则输出为: C:\wwwroot\a
另: 使用 dirname($_SERVER['SCRIPT_FILENAME']) 也可以获取文件目录,不过$_SERVER['SCRIPT_FILENAME']返回的是访问文件的路径,即上面两个示例都会返回C:/wwwroot/1.php,注意在windows系统下返回的路径分隔符也有区别。