嘿嘿,小强要加油哦~
dirname(__FILE__)计算出来的也是一个全路径形式的目录
但是要注意__FILE__是一个Magic constants,不管在什么时候都等于写这条语句的php文件所在的全路径
因此dirname(__FILE__)也总是指向写这条语句的php文件所在的全路径,跟这个文件是否被其他文件包含使用没有任何关系。
例如:
A中定义 require '../b.php'; //则B=[SITE]/app/b.php
B中定义 require dirname(__FILE__).'/c.php'; //则B=[SITE]/app/c.php
如果
A中定义 require '../inc/b.php'; //则B=[SITE]/app/inc/b.php
B中定义 require dirname(__FILE__).'/c.php'; //则B=[SITE]/app/inc/c.php 始终跟B在同一个目录
结论:不管B是被A包含使用,还是直接被访问,
B如果 require dirname(__FILE__).'/c.php'
则始终引用到跟B在同一个目录中的 c.php文件;
B如果 require dirname(__FILE__).'/../c.php'
则始终引用到B文件所在目录的父目录中的 c.php文件;
B如果 require dirname(__FILE__).'/c/c.php'
则始终引用到B文件所在目录的c子目录中的 c.php文件;
祝好,
斑驳敬上