PHP 的 __FILE__ 常量


Posted in PHP onJanuary 15, 2007

今天碰到了PHP的常量__FILE__的问题了。
在网上查了一下。总结了以下规律。
dirname(__FILE___) 函数返回的是脚本所在在的路径。
比如文件 b.php 包含如下内容:
<?php
$basedir = dirname(__FILE__);
?>
如果b.php被其他目录里的a.php文件require 或者 include 去引用的话。
变量$basedir 的内容还是b.php所在的那个文件夹的路径。
而不是变成a.php文件所在的目录。
dirname(__FILE__) 一般会返回文件所的当前目录到系统根目录的一个目录结构。
不会返回当前的文件名称。
dirname(__FILE__) 也可能返回一个 . (当前目录)
[原因是 b.php 文件在 http.conf 或者 PHP 配置开发环境的默认WEB目录下.
比如 WEB_ROOT 为: "C:/root/www/".]
b.php文件路径为: "C:/root/www/b.php".

使用方法提示, 
如果重复一次可以把目录往上提升一个层次:
比如:$d = dirname(dirname(__FILE__));
其实就是把一个目录给dirname()做参数了.因为dirname()返回最后的目录不带\\或者是/
所以重复使用的时候可以认为 dirname() 把最下层的目录当成文件名来处理了.照常返回
当前目录的上级目录.这样重复就得到了它的上一级的目录.

包含得到上一级目录的文件
include(dirname(__FILE__).'/../filename.php');

PHP 相关文章推荐
追求程序速度,而不是编程的速度
Apr 23 PHP
php mssql 数据库分页SQL语句
Dec 16 PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
May 12 PHP
PHP中余数、取余的妙用
Jun 29 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
示例详解Laravel的注册重构
Aug 14 PHP
PHP 7.1新特性的汇总介绍
Dec 16 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
Feb 20 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
laravel 出现command not found问题的解决方案
Oct 23 PHP
PHP7 foreach() 函数修改
Mar 09 PHP
MySQL相关说明
Jan 15 #PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Jan 15 #PHP
关于mysql 字段的那个点为是定界符
Jan 15 #PHP
最令PHP初学者们头痛的十四个问题
Jan 15 #PHP
NOT NULL 和NULL
Jan 15 #PHP
MySQL中create table语句的基本语法是
Jan 15 #PHP
php生成文件
Jan 15 #PHP
You might like
PHP学习笔记之二 php入门知识
2011/01/12 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
PHP session 会话处理函数
2016/06/06 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
js获取IP地址的方法小结
2014/07/01 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
详解JavaScript逻辑And运算符
2015/12/04 Javascript
javascript实现拖放效果
2015/12/16 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
vue实现分页栏效果
2019/06/28 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
python实现图片九宫格分割
2021/03/07 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
中专生学习生活的自我评价分享
2013/10/27 职场文书
学术会议邀请函范文
2014/01/22 职场文书
装修协议书范本
2014/04/21 职场文书
领导班子对照检查材料
2014/09/22 职场文书
安全员岗位职责
2015/02/10 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
Python基础之常用库常用方法整理
2021/04/30 Python
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS