🐡
マジック定数
正確な詳細を知りたい場合は、公式サイトをご覧ください。このページでは分かりやすく一言で紹介します。
__DIR__
この__DIR__
定数を使っているファイルのディレクトリーのパスが代入されています。
PHPの基本的なテクニックで、関数や設定をcommonファイルにまとめて、それをinclude
する書き方がありますが、「includeされたファイル」が、更に他のファイルをinclude
しようとすると、相対パスの書き方で間違えやすくなります。[1]
複雑なincludeをしても、include(__DIR__.'/../../common/db.php');
という書き方をすれば、絶対パスで指定することが可能です❗
__FILE__
この__FILE__
定数を使っているファイルのパスが代入されています。
ファイル名だけを取得したい(パスは要らない)場合は、 basename(__FILE__)
で取得できます。
用途としては、ほぼデバッグ用です。
__LINE__
__LINE__
を記述した行が何行目かを取得できます。主にデバッグに使います。
下のように書くと、どっちのif文が実行されているか確認できます。
echo __FILE__;
if( $var === true ){
echo __LINE__;
}else{
echo __LINE__;
}
__FUNCTION__
これを記述した箇所の関数名やメソッド名を取得できます。
デバッグやフレームワークの作成に使います。
__CLASS__
これを記述した箇所のクラス名を取得できます。
デバッグやフレームワークの作成に使います。
__METHOD__
これを記述した箇所のメソッド名を取得できます。
メソッド名は、完全修飾されているので、単純にメソッド名だけが欲しい場合は、メソッド内で __FUNCTION__
を使います。
デバッグやフレームワークの作成に使います。
-
includeするパスは、実行ファイルからの相対パスになります。「includeされたファイル」からの相対パスではありません。 ↩︎
Discussion