在$ absolutePath = realpath(__ DIR__)中,“realpath”是多余的吗? __DIR__始终是典型的绝对路径吗?

时间:2012-02-23 15:26:06

标签: php filesystems

是否可以做类似

的事情
 $dir = realpath(dirname(__FILE__));
 // or for php 5.3+:
 $dir = realpath(__DIR__)

或者像 DIR FILE 这样的魔术常量总是返回绝对路径,所以realpath是多余的?

1 个答案:

答案 0 :(得分:8)

您不需要realpath()

__FILE__的文档:

  

文件的完整路径和文件名。如果在包含内使用,则   返回包含文件的名称。自PHP 4.0.2起,__FILE__   始终包含绝对路径,其中已解析符号链接,而在   旧版本在某些情况下包含相对路径。

所以__FILE__返回绝对路径=> realpath()不必要的

如果您使用__DIR__

  

文件的目录。如果在include中使用,则目录为   包含的文件被返回。 这相当于   目录名(__FILE__即可。此目录名称没有尾部斜杠   除非它是根目录。 (在PHP 5.3.0中添加。)

__DIR__也会返回绝对路径,因为dirname()并未切断__FILE__ =>路径的绝对部分 realpath()不必要的