您的位置:首页 > 其它

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

2012-11-09 10:24 375 查看
先看手册中的解释:
$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径。Note:如果在命令行界面(Command Line Interface, CLI)使用相对路径执行脚本,例如 file.php 或 ../file.php,那么 $_SERVER['SCRIPT_FILENAME'] 将包含用户指定的相对路径。
__FILE__
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。

下面为例子:
在E:\AppServ\www\mypro\TP的目录下有两个文件demo.php 和 requireDemo.php
代码如下:
demo.php

<?php
require './requireDemo.php';
?>

requreiDemo.php

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

在浏览器访问demo.php,输出的结果为:
__FILE__ 为:E:\AppServ\www\mypro\TP\requireDemo.php

SCRIPT_FILENAME 为:E:/AppServ/www/mypro/TP/demo.php

由此可以看出__FILE__反应的是原始文件(被包含文件)的绝对路径及文件名;$_SERVER['SCRIPT_FILENAME']反应的是当前执行程序的绝对路径及文件名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: