PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别

PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__

通常情况下,PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 都会返回 PHP 文件的完整路径(绝对路径)与文件名:

<?php
echo 'SCRIPT_FILENAME 为:',$_SERVER['SCRIPT_FILENAME'];
echo '<br />';
echo '__FILE__ 为:',__FILE__;
?>

上述测试代码拷贝至 test.php 并访问该文件(http://127.0.0.1/php/test.php),得到如下结果:

SCRIPT_FILENAME 为:E:/web/html/php/test.php
__FILE__ 为:E:\web\html\php\test.php

提示:在 windows 平台测试,得到结果如上所示可能会出现路径分隔符的细微差别。

$_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 区别

尽管 $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 非常相似,但在文件被 include 或 require 包含的时候,二者还是有细微区别。

将上述测试代码拷贝至 E:\web\html\php\common\inc.php ,然后在刚才的 test.php 文件内包含 inc.php :

<?php
include 'common/inc.php';
?>

这时候再访问 test.php 文件时,输出结果:

SCRIPT_FILENAME 为:E:/web/html/php/test.php
__FILE__ 为:E:\web\html\php\common\test.php

可见二者的差别是:$_SERVER['SCRIPT_FILENAME'] 反映的是当前执行程序的绝对路径及文件名;__FILE__ 反映的是原始文件(被包含文件)的绝对路径及文件名。

随机推荐

  1. Hadoop相关笔记

    一.            Zookeeper( 分布式协调服务框架 ) 1.    Zookeeper概述和集群搭建: (1)       Zookeeper概述: Zookeeper 是一个分布式 ...

  2. IE浏览器中找不到开发者工具

    ie浏览器不知道什么原因开发者工具不见了.打开以后在任务栏中显示打开了控制台,但是看不到. 解决方法 : F12 打开开发者工具后,按下 “ Ctrl + P ”

  3. webpack管理输出

    管理html的bundle依赖 html-webpack-plugin可以自动给html添加bundle文件 npm install --save-dev html-webpack-plugin co ...

  4. 伪类选择器a的属性

    在使用a中的四个属性时必须按照顺序来,不管用那两个都是要依照这个顺序来 1.a:link未访问过的状态 a:link{ color:red; } 2.a:visited已访问的 a:visited{ ...

  5. CentOS6安装各种大数据软件 第三章:Linux基础软件的安装

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  6. html学习笔记--标签大全

    一.HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(DTD).   标签:a 说明:标明超链接的起始或目的位置.   标签:acronym 说明:标明缩写词.   ...

  7. 与Linux的第一次遭遇

    我的与linux首次遭遇战 虚拟机安装 安装虚拟机我遇到的问题个数可以缩减到1--我几乎没遇到安装虚拟机的问题!我严格按照老师给的链接去下载那个VirtualBox,尽管那个网页是全英文的,但是我像看 ...

  8. 20155313 实验一《Java开发环境的熟悉》实验报告

    一.实验内容 1.使用JDK编译.运行简单的Java程序 2.使用IDEA 编辑.编译.运行.调试Java程序. 二.练习 题目:实现学生信息管理. 具体代码: import java.util.*; ...

  9. # 2016-2017-2 20155319 《Java程序设计》实验四Android程序开发实验报告

    2016-2017-2 20155319 <Java程序设计>实验四Android程序开发实验报告 实验一 实验内容 Android Stuidio的安装测试: 参考<Java和An ...

  10. 20155322 2017-2018-1《信息安全系统设计》第二周 课堂测试 Linux下C语言实现MYOD

    20155322 2017-2018-1<信息安全系统设计>第二周 课堂测试 Linux下C语言实现MYOD [博客目录] 静态库测试 实现方法 相关资料 操作 动态库测试 实现方法 相关 ...