前言
今天这段代码,依然出自 laravel,几乎所有的程序都会有这么类似的一段代码。
注意:PHP手册,没有废话,每一句都要认真理解。
代码
注意,我们只需要关注 这一段即可。
语法解析
接下来对语法进行逐一的分析。
__DIR__ 魔术常量
这是一个魔术常量,在PHP手册 - 常量 - 魔术常量一节有讲,它具备如下特性。
1、返回文件所在的绝对路径。
2、如果所在文件被包含()则返回被包含的文件目录。
3、目录不包括最后的“/”,除非是根目录。
4、PHP5.3 之后的版本支持该语法。
5、等价于 ,也就是说旧版本,可以使用这段代码代替。
注意:其实,我们在很多程序中看到的都是“5”这样的语法,这是历史原因造成的。
../ 指向上级目录
是上级目录的意思。
连在一起解释, 就是说:获得当前代码所处的 的上级目录。也就是说:获取当前代码所处位置的上级目录。
长相如下:
看起来有点怪,但不要怀疑它的有效性,指向/public/的上级目录。
realpath() 函数
这是PHP系统函数,功能是 ,注意:规范化。
上面生成的路径有点丑,所以用这个函数规范化一下。
最终路径:
实践解析
每个程序都是由大量文件、文件夹组成的。互相之间又存在包含关系(include),文件的路径管理不胜其烦。
有这么几种情况
使用相对路径:受当前目录影响,相对关系经常变化。
使用绝对路径:没了相对路径的困扰,但是程序每次换地方,都要手动改路径。
最佳解决方案:使用绝对路径,并由程序自动获取“当前所处绝对路径”
如你所见
这段代码 就是用来解决上面的问题。
总结
断言:如果你一直优先使用相对路径,并且从来无此困扰,那么一定没怎么写过独立软件。
领取专属 10元无门槛券
私享最新 技术干货