【PHP初心者向け】
「__FAILE__」関数が動かない!盲点な落とし穴

2018-05-12

PHPの「__FAILE__」は、PHPでデフォルトで用意されている便利な「マジック関数」の1つで、実行中のファイルのパスを取得する事ができます。

「ひゃっほー便利!」と意気揚々と使ってみたのですが……

出ない!!!

ここでは、はじめて「__FAILE__」関数を使ったとき、動かなくて迷走しながら色々調べて分かった原因をメモしています。

\項目をタップするとジャンプできます/

「__FAILE__」には
アンダーバーが4つある

通常、「<?php echo __FILE__; ?>」などと記述してブラウザで確認すると、そのファイルの名前や、ファイルのあるディレクトリ名を表示することが出来ます。

それが全く動かない!

その原因は……!

「__FAILE__」には「_(アンダーバー)」が前後2つずつ必要だったから……!!

私は「_(アンダーバー)」が1つずつと勘違いして書いていたので、動かなかったんですね。

わかってみれば拍子抜けな単純なスペルミスなんですが、ぱっと見「_(アンダーバー)」が1つか2つかは、判別しづらい、と思います。

いざ「_(アンダーバー)」の数を修正して実行すると、ちゃんと正常に動作したので一安心。

PHP初心者なら一度はハマるかも知れない(?)、「__FAILE__」の盲点でした。

「__FAILE__」で
ファイル名だけ、ディレクトリ名だけ取得するには

ちなみに「__FAILE__」関数は、ファイル名だけ、ディレクトリ名だけを取得する事もできます。

「echo basename(__FILE__);」とすると、ファイルパスから「ファイル名だけ」を。

「echo dirname(__FILE__);」とすると、ファイルパスから「ディレクトリ名だけ」を抽出、書き出す事ができます。

ディレクトリ名を取得するのは地味に手間なので、本当に便利なマジック関数ですね。

SHARE

このサイトについて

「Web Work Plus」はWEB制作・ビジネスのちょい足し情報メデイアです。ちょっとしたハテナをプラスに変える役立つ備忘録を発信中!