学习
实践
活动
工具
TVP
写文章

PHP实战技巧(2)获取程序所在硬盘目录

前言

今天这段代码,依然出自 laravel,几乎所有的程序都会有这么类似的一段代码。

注意:PHP手册,没有废话,每一句都要认真理解。

代码

注意,我们只需要关注 这一段即可。

语法解析

接下来对语法进行逐一的分析。

__DIR__ 魔术常量

这是一个魔术常量,在PHP手册 - 常量 - 魔术常量一节有讲,它具备如下特性。

1、返回文件所在的绝对路径。

2、如果所在文件被包含()则返回被包含的文件目录。

3、目录不包括最后的“/”,除非是根目录。

4、PHP5.3 之后的版本支持该语法。

5、等价于 ,也就是说旧版本,可以使用这段代码代替。

注意:其实,我们在很多程序中看到的都是“5”这样的语法,这是历史原因造成的。

../ 指向上级目录

是上级目录的意思。

连在一起解释, 就是说:获得当前代码所处的 的上级目录。也就是说:获取当前代码所处位置的上级目录。

长相如下:

看起来有点怪,但不要怀疑它的有效性,指向/public/的上级目录。

realpath() 函数

这是PHP系统函数,功能是 ,注意:规范化。

上面生成的路径有点丑,所以用这个函数规范化一下。

最终路径:

实践解析

每个程序都是由大量文件、文件夹组成的。互相之间又存在包含关系(include),文件的路径管理不胜其烦。

有这么几种情况

使用相对路径:受当前目录影响,相对关系经常变化。

使用绝对路径:没了相对路径的困扰,但是程序每次换地方,都要手动改路径。

最佳解决方案:使用绝对路径,并由程序自动获取“当前所处绝对路径”

如你所见

这段代码 就是用来解决上面的问题。

总结

断言:如果你一直优先使用相对路径,并且从来无此困扰,那么一定没怎么写过独立软件。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180607B0OILN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券