使われる場所によって値が変化する定数(マジック定数)が 9 つあります。 例えば、__LINE__
はスクリプト上において 使われる行によって値が変化します。 これらの "マジック"定数は、実行時に解決される通常の定数とは異なり、コンパイル時に解決されます。 これらの特別な定数は大文字小文字を区別しません。 内容は以下のとおりです:
名前 | 説明 |
---|---|
__LINE__ | ファイル上の現在の行番号。 |
__FILE__ | ファイルのフルパスとファイル名 (シンボリックリンクを解決した後のもの)。 インクルードされるファイルの中で使用された場合、インクルードされるファイルの名前が返されます。 |
__DIR__ | そのファイルの存在するディレクトリ。include の中で使用すると、 インクルードされるファイルの存在するディレクトリを返します。 つまり、これは dirname(__FILE__) と同じ意味です。 ルートディレクトリである場合を除き、ディレクトリ名の末尾にスラッシュはつきません。 |
__FUNCTION__ | 関数名。無名関数の場合は、{closure} |
__CLASS__ | クラス名。 クラス名には、そのクラスが宣言されている名前空間も含みます (例 Foo\Bar )。 トレイトのメソッド内で __CLASS__ を使うと、 そのトレイトを use しているクラスの名前を返します。 |
__TRAIT__ | トレイト名。 トレイト名には、宣言された名前空間も含みます (例 Foo\Bar )。 |
__METHOD__ | クラスのメソッド名。 |
__NAMESPACE__ | 現在の名前空間の名前。 |
ClassName::class | 完全に修飾されたクラス名。 |