PHP$_SERVER['SCRIPT FILENAME']と__FILE_の違い

1185 ワード

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プラットフォームでテストして、結果は上述のように経路区切り子の微妙な違いが現れるかもしれません。
$uSERVER['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_元のファイル(ファイルを含む)の絶対パスとファイル名が反映されます。
http://www.5idev.com/p-php_server_スクリプトfilename_ufile_.shtml