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