dirname(__FILE__) 与 PHP define() 及例子define('root',dirname(__file__))
PHP define() 函数
定义和用法define() 函数定义一个常量。
常量类似变量,不同之处在于:
在设定以后,常量的值无法更改 常量名不需要开头的美元符号 ($) 作用域不影响对常量的访问 常量值只能是字符串或数字 语法 define(name,value,case_insensitive)name | 必需。规定常量的名称。 |
value | 必需。规定常量的值。 |
case_insensitive | 必需。规定常量的名称是否对大小写敏感。 若设置为 true,则对大小写不敏感。默认是 false(大小写敏感)。 |
dirname(__FILE__)
php中定义了一个很有用的常数,即
__file__
这个内定常数是当前php程序的就是完整路径(路径+文件名)。
即使这个文件被其他文件引用(include或require),__file__始终是它所在文件的完整路径,而不是引用它的那个文件完整路径。
请看下面例子:
/home/data/demo/test/a.php
<?php $the_full_name=__FILE__; $the_dir=dirname(__FILE__); echo$the_full_name; //返回/home/data/demo/test/a.php echo $the_dir; //返回/home/data/demo/test ?> |
home/data/demo/b.php
<?php include "test/a.php"; echo$the_full_name; //返回/home/data/demo/ echo $the_dir; //返回/home/data/demo/test而不是/home/data/demo/ ?>test/a.php 而不是/home/data/demo/b.php |
简单地说:
__FILE__ 返回当前 路径+文件名
dirname(__FILE__) 返回当前文件路径的 路径部分
dirname(dirname(__FILE__));得到的是文件上一层目录名(不含最后一个“/”号)
例如,当前文件是 /home/data/demo/test.php ,则
__FILE__ 得到的就是完整路径 即 /home/data/demo/test.php ,而
dirname(__FILE__)得到路径部分 即 /home/data/demo (后面没有“/”号)