PHPスクリプト名取得のベンチマーク
__FILE__定数、$_SERVERグローバル変数、getenv関数を使ったベンチマークの結果が公開されています。まあ、順当といえばそうなんですが、やはり__FILE__が早いようです。
掲載されているスクリプトを実際に試してみました。環境はP4-3GHz+2GB Mem+CentOS4.4+Apache2.2.3+PHP5.2.0で、結果は
Here is the result(refresh and it changes):__FILE__;0.000838
$_SERVER["PHP_SELF"];0.003908
$_SERVER["SCRIPT_NAME"];0.001379
$_SERVER["REQUEST_URI"];0.001351
getenv("REQUEST_URI");0.003506
getenv("SCRIPT_NAME");0.003074
getenv("SCRIPT_URL");0.003096
The result shows that __FILE__ is the fastest, so use that when you don't have to use any other method to find the script's self. __FILE__ is a built in constant show the location of the running script. Note that each one of those ways can return different things(like PHP_SELF is different than REQUEST_URI when used some mod_rewrite) but most times those have the same usage, refer to self.
- __FILE__定数:0.001秒
- $_SERVERグローバル変数:0.002〜0.003秒
- getenv関数:0.01〜0.02秒
な感じでした。関数を経由すると、かなり遅いですね(1桁違う)。