PHPには実行されるスクリプトで使用可能な多くの 定義済みの定数があります。 しかし、これらの定数の多くは、種々の拡張モジュールにより作成され、 動的なロードやコンパイル時の組込みにより、これらの拡張モジュールが 使用可能である場合にのみ定義されます。
使われ方によって変化する自動的に定義される定数(マジカル定数)が 9 つあります。
例えば、__LINE__
はスクリプト上において
呼び出された行番号です。
All these "magical" constants are resolved
at compile time, unlike regular constants thats resolved at runtime.
特別定数は大文字小文字を区別しません。
内容は以下のとおりです:
名前 | 説明 |
---|---|
__LINE__ |
ファイル上の現在の行番号。 |
__FILE__ |
ファイルのフルパスとファイル名 (シンボリックリンクを解決した後のもの)。 インクルードされるファイルの中で使用された場合、インクルードされるファイルの名前が返されます。 |
__DIR__ |
そのファイルの存在するディレクトリ。include の中で使用すると、 インクルードされるファイルの存在するディレクトリを返します。 つまり、これは dirname(__FILE__) と同じ意味です。 ルートディレクトリである場合を除き、ディレクトリ名の末尾にスラッシュはつきません。 |
__FUNCTION__ |
関数名。 |
__CLASS__ |
クラス名。 クラス名には、そのクラスが宣言されている名前空間も含みます (例 Foo\Bar)。 PHP 5.4 以降では、__CLASS__ がトレイトでも使えることに注意しましょう。トレイトのメソッド内で __CLASS__ を使うと、そのトレイトを use しているクラスの名前を返します。 |
__TRAIT__ |
トレイト名 トレイト名には、宣言された名前空間も含みます (例 Foo\Bar)。 |
__METHOD__ |
クラスのメソッド名。 |
__NAMESPACE__ |
現在の名前空間の名前。 |
ClassName::class |
The fully qualified class name. See also ::class. |
get_class(), get_object_vars(), file_exists(), function_exists()も参照してください。
バージョン | 説明 |
---|---|
5.5.0 |
::class が追加されました。
|
5.4.0 |
__TRAIT__ が追加されました。
|
5.3.0 |
__DIR__ と __NAMESPACE__ が追加されました。
|
5.0.0 |
__METHOD__ が追加されました。
|
5.0.0 | これより前のバージョンでは、マジック定数のうちのいくつかが、常に小文字化されていました。 このバージョン以降は、すべて大文字小文字を区別する (宣言したとおりに設定される) ようになります。 |
4.3.0 |
__FUNCTION__ と __CLASS__ が追加されました。
|
4.0.2 |
__FILE__ に常に絶対パスを含め、シンボリックリンクも解決するようになりました。
これより前のバージョンでは、場合によっては相対パスが含まれていることもありました。
|