PHP 的 __FILE__ 常量

今天碰到了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');

(0)

相关推荐

  • php 静态变量与自定义常量的使用方法

    ⚑ 静态变量的声明与使用 ⚑ 自定义常量的使用方式 什么是静态变量? 静态变量是指用static声明的变量,这种变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,当下次再用到它的时候,可以保留最近一次的值. 下面举例: 复制代码 代码如下: <?php function add() { static $i=0; $i++; echo $i; } add(); echo " "; add(); ?> 这段程序中,主要定义了一个函数add

  • PHP 判断常量,变量和函数是否存在

    复制代码 代码如下: if (defined('CONST_NAME')) {    //do something } 变量检测则是使用isset,注意变量未声明或声明时赋值为NULL,isset均返回FALSE,如: 复制代码 代码如下: if (isset($var_name)) {    //do something} 函数检测用function_exists,注意待检测的函数名也需要使用引号,如: 复制代码 代码如下: if (function_exists('fun_name')) {

  • php中常量DIRECTORY_SEPARATOR用法深入分析

    本文实例讲述了php中常量DIRECTORY_SEPARATOR用法.分享给大家供大家参考.具体如下: DIRECTORY_SEPARATOR在php是什么意思呢,在什么时候使用DIRECTORY_SEPARATOR最合理呢?下面来给各位介绍一下php DIRECTORY_SEPARATOR常量. 我们知道DIRECTORY_SEPARATOR是一个PHP常量,代表反斜杠,因为windows系统和linux系统的反斜杠不一样.在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符,

  • PHP 中常量的知识整理

    PHP中的常量分为自定义常量和系统常量 常量特点: 在设定以后,常量的值无法更改 常量名不需要开头的美元符号 ($) 作用域不影响对常量的访问 常量值只能是字符串或数字 获取常量的值: 使用常量名直接获取值: 使用 ==constant()== 函数,它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活.方便. defined() 函数:判断一个常量是否已经定义 define("PI",3.14); $is1 = defined('PI'); $is2

  • PHP 得到根目录的 __FILE__ 常量

    1.PHP 的 __FILE__ 常量(如何得到根目录) dirname(__FILE___) 函数返回的是脚本所在在的路径. 比如文件 b.php 包含如下内容: $basedir = dirname(__FILE__); ?> 如果b.php被其他目录里的a.php文件require 或者 include 去引用的话. 变量$basedir 的内容还是b.php所在的那个文件夹的路径. 而不是变成a.php文件所在的目录. dirname(__FILE__) 一般会返回文件所的当前目录到系统

  • PHP中如何定义和使用常量

    1.自定义常量 * 必须用函数define()定义  * 定义完后其值不能再改变了  * 使用时直接用常量名,不能像变量一样在前面加$s 例如:define("PI",3.14);定义一个常量      $area = PI*R*R; 计算圆的面积      define("URL","http://www.jb51.net");      echo "我的网址是:".URL; 2 系统常量: FILE :php程序文件名 

  • PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)

    为什么要谨慎使用PHP中的常量? Zend Framework文档中写道:常量包含数字字母字符和下划线,数字允许作为常量名. 常量名的所有字母必须大写.类常量必须通过 "const" 定义为类的成员,强烈不鼓励使用 "define" 定义的全局常量. 作为PHP的官方框架,为什么会有这样的要求? 让我们一起分析一下吧. 1. define容易产生意想不到的错误 PHP常量是定义后就不能修改和再次赋值.但是如果再次赋值会怎么样? <?php define('C'

  • thinkphp中常用的系统常量和系统变量

    ----------------------------------------模板中使用的系统变量和常量----------------------------------------(1)系统变量:在模板中输出系统变量:包括server.env.session.post.get.request.cookie      {$Think.server.script_name} // 输出$_SERVER变量{$Think.session.session_id|md5} // 输出$_SESSIO

  • PHP 的 __FILE__ 常量

    今天碰到了PHP的常量__FILE__的问题了. 在网上查了一下.总结了以下规律. dirname(__FILE___) 函数返回的是脚本所在在的路径. 比如文件 b.php 包含如下内容: <?php $basedir = dirname(__FILE__); ?> 如果b.php被其他目录里的a.php文件require 或者 include 去引用的话. 变量$basedir 的内容还是b.php所在的那个文件夹的路径. 而不是变成a.php文件所在的目录. dirname(__FILE

  • 解析php dirname()与__FILE__常量的应用

    __FILE__表示当前所在文件的绝对路径包括文件名,dirname(__FILE__)表示当前文件的绝对路径,basename(__FILE__)表示当前文件的文件名称,dirname(__FILE__)."/f/".basename(__FILE__)则表示当前文件所在目录下的f目录下的,文件名称为dirname(__FILE__)的文件,require表示包含该文件到这个文件.下面是详解:1)dirname(__FILE___) 函数返回的是脚本所在在的路径.     比如文件

  • 全面了解PHP中的全局变量

    PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用. 你不需要特别说明,就可以在函数及类中使用. PHP 超级全局变量列表: •$GLOBALS •$_SERVER •$_REQUEST •$_POST •$_GET •$_FILES •$_ENV •$_COOKIE •$_SESSION 本章节我们将讲解几个常用的超级全局变量,其余变量我们在接下来几个章节会介绍到. PHP $GLOBAL $GLOBAL 是PHP的一个超级全局变量组,在

  • Laravel中的Blade模板引擎示例详解

    前言 本文主要给大家介绍了关于Laravel中Blade模板引擎的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧. Blade 模板引擎 Blade 是 laravel 提供的一个简单强大的模板引擎,它是把 Blade 视图编译成原生的 PHP 代码并缓存起来.缓存会在 Blade 视图改变时而改变,这意味着 Blade 并没有给你的应用添加编译的负担.Blade 视图文件使用 .blade.php 后缀,一般都存储在 resources/views 目录下. 模板继承 先

  • php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别

    "PHP_SELF" 当前正在执行脚本的文件名,与 document root 相关.举例来说,在 URL 地址为 http://www.jb51.net/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将会得到 /test.php/foo.bar 这个结果.__FILE__ 常量包含当前(例如包含)文件的绝对路径和文件名. "SCRIPT_NAME" 包含当前脚本的路径.这在页面需要指向自己时非常有用.__FILE__ 包

  • 很让人受教的 提高php代码质量36计

    1.不要使用相对路径 常常会看到: require_once('../../lib/some_class.php'); 该方法有很多缺点: 它首先查找指定的php包含路径, 然后查找当前目录. 因此会检查过多路径. 如果该脚本被另一目录的脚本包含, 它的基本目录变成了另一脚本所在的目录. 另一问题, 当定时任务运行该脚本, 它的上级目录可能就不是工作目录了. 因此最佳选择是使用绝对路径: define('ROOT' , '/var/www/project/'); require_once(ROO

  • 高质量PHP代码的50个实用技巧必备(上)

    50个高质量PHP代码的实用技巧,希望大家喜欢. 1.不要使用相对路径 常常会看到: require_once('../../lib/some_class.php'); 该方法有很多缺点: 它首先查找指定的php包含路径, 然后查找当前目录.因此会检查过多路径.如果该脚本被另一目录的脚本包含, 它的基本目录变成了另一脚本所在的目录. 另一问题, 当定时任务运行该脚本, 它的上级目录可能就不是工作目录了.因此最佳选择是使用绝对路径: view sourceprint? define('ROOT'

  • php预定义变量使用帮助(带实例)

    自 php 4.1.0 起,取得外部变量的首选方法是用下面提及的超全局变量.在此之前,人们要么依赖 register_globals,要么就是长长的预定义 PHP 数组($HTTP_*_VARS).自 PHP 5.0.0 起,长格式的 PHP 预定义变量可以通过设置 register_long_arrays 来屏蔽.服务器变量:$_SERVER注: 在 PHP 4.1.0 及以后版本使用.之前的版本,使用 $HTTP_SERVER_VARS.$_SERVER 是一个包含诸如头信息(header)

  • PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析

    本文实例讲述了PHP超级全局变量用法.分享给大家供大家参考,具体如下: $GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION 咱们这次就来聊聊$GLOBALS&$_SERVER&$_REQUEST这三个超级全局变量.首先是$GLOBALS,它是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问,它还是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问.具体用法如

随机推荐