PHPでウェブの世界と繋がろう!
menu
ホーム > PHPの文法 > 1 基本構造 > php の マジカル定数(マジック定数)

php の マジカル定数(マジック定数)

Pocket

- 1 分ノート ! -

  • マジカル定数(マジック定数)は
    PHPで自動的に定義される定数
  • 使用方法によって値が変化する
  • 大文字小文字を区別しない
  • マジカル定数
    __LINE__ 行番号
    __FILE__ ファイルパス
    __DIR__ ディレクトリパス
    __FUNCTION__ 関数名
    __CLASS__ クラス名
    __METHOD__ クラスのメソッド名
    __NAMESPACE__ 現在の名前空間の名前


マジカル定数(マジック定数)とは

POINT

  • マジカル定数(マジック定数)は
    PHPで自動的に定義される定数
  • 使用方法によって値が変化する

本来 定数 は定義後に値の変更はできません。ですが、使用方法によって変化し、自動的に定義される定数が7つ(PHP5.3から8つ)あります。これらをマジカル定数(マジック定数)といいます。

例えば、マジカル定数の__LINE__は記述した箇所のPHPファイル上の行数を返します。記述した箇所によって行数が変わるので値は変化します。

マジカル定数は大文字小文字を区別しません

PHPのマジカル定数
__LINE__ 行番号
__LINE__を記述したPHPファイルの現在の行番号を表示します。
__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)。
__METHOD__ クラスのメソッド名
(PHP5.0.0で追加されました)メソッド名は宣言時と同じ(ケース依存)を返します。
__NAMESPACE__ 現在の名前空間の名前 (大文字小文字を区別します)。 この定数はコンパイル時に定義されます (PHP 5.3.0 で追加されました)。


自動的に定義される定数とは

PHPには多くの定義済み定数があります。これらの定数は実行されるスクリプト中であれば使用可能です。但し、これらの定数の多くは、拡張モジュールにより自動的に定義されます。従って、拡張モジュールが使用可能な場合は自動的に定数が定義され、定数が使用可能になりますが、そうでない場合は使用できません。

拡張モジュールは、PHPコンパイル時に組込む場合や、dl()関数を使用して、動的にロードしたりします。拡張モジュールを利用することでzipファイルを作成したり、様々な機能を利用できるようになります。

定義済みの定数 PHP, Zend engine, SAPI モジュール含む

以下の定数は PHP のコアで定義済みの定数です。 PHP, Zend engine, SAPI モジュールも含みます。

PHP_VERSION (string) 現在の PHP のバージョンを “major.minor.release[extra]” 形式の文字列で表したもの。
PHP_MAJOR_VERSION (integer) 現在の PHP のメジャーバージョンを整数値で表したもの (たとえば、バージョンが “5.2.7-extra” の場合は int(5) となる)。 PHP 5.2.7 以降で利用可能。
PHP_MINOR_VERSION (integer) 現在の PHP のマイナーバージョンを整数値で表したもの (たとえば、バージョンが “5.2.7-extra” の場合は int(2) となる)。 PHP 5.2.7 以降で利用可能。
PHP_RELEASE_VERSION (integer) 現在の PHP のリリースバージョンを整数値で表したもの (たとえば、バージョンが “5.2.7-extra” の場合は int(7) となる)。 PHP 5.2.7 以降で利用可能。
PHP_VERSION_ID (integer) 現在の PHP のバージョンを整数値で表したもの。バージョンを比較する際に有用 (たとえば、バージョンが “5.2.7-extra” の場合は int(50207) となる)。 PHP 5.2.7 以降で利用可能。
PHP_EXTRA_VERSION (string) 現在の PHP の追加バージョンを文字列で表したもの (たとえば、バージョンが “5.2.7-extra” の場合は ‘-extra’ となる)。 ディストリビューションのベンダーが、パッケージのバージョンを示すために使うことが多い。 PHP 5.2.7 以降で利用可能。
PHP_ZTS (integer) PHP 5.2.7 以降で利用可能。
PHP_DEBUG (integer) PHP 5.2.7 以降で利用可能。
PHP_MAXPATHLEN (integer) この PHP がサポートする、ファイル名の長さ (パスを含む) の最大値。 PHP 5.3.0 以降で利用可能。
PHP_OS (string)  
PHP_SAPI (string) この PHP のサーバー API。 PHP 4.2.0 以降で利用可能。
PHP_EOL (string) このプラットフォームの行末文字。 PHP 4.3.10 および PHP 5.0.2 以降で利用可能。
PHP_INT_MAX (integer) この PHP がサポートする整数型の最大値。通常は int(2147483647)。 PHP 4.4.0 および PHP 5.0.5 以降で利用可能。
PHP_INT_SIZE (integer) PHP 4.4.0 および PHP 5.0.5 以降で利用可能
DEFAULT_INCLUDE_PATH (string) PEAR_INSTALL_DIR (string)
PEAR_EXTENSION_DIR (string)  
PHP_EXTENSION_DIR (string)  
PHP_PREFIX (string) configure 時に設定された “–prefix” の値。 PHP 4.3.0 以降で利用可能。
PHP_BINDIR (string) バイナリのインストール先。
PHP_BINARY (string) スクリプト実行時の PHP バイナリのパス。 PHP 5.4 以降で利用可能。
PHP_MANDIR (string) man ページのインストール先。 PHP 5.3.7 以降で利用可能。
PHP_LIBDIR (string)  
PHP_DATADIR (string)  
PHP_SYSCONFDIR (string)  
PHP_LOCALSTATEDIR (string)  
PHP_CONFIG_FILE_PATH (string)  
PHP_CONFIG_FILE_SCAN_DIR (string)  
PHP_SHLIB_SUFFIX (string) このプラットフォームの共有ライブラリの拡張子。”so” (多くの Unix 系 OS) や “dll” (Windows) など。 PHP 4.3.0 以降で利用可能。
E_ERROR (integer) エラーを報告する定数
E_WARNING (integer)  
E_PARSE (integer)  
E_NOTICE (integer)  
E_CORE_ERROR (integer)  
E_CORE_WARNING (integer)  
E_COMPILE_ERROR (integer)  
E_COMPILE_WARNING (integer)  
E_USER_ERROR (integer)  
E_USER_WARNING (integer)  
E_USER_NOTICE (integer)  
E_DEPRECATED (integer) PHP 5.3.0 以降で利用可能
E_USER_DEPRECATED (integer) PHP 5.3.0 以降で利用可能
E_ALL (integer)  
E_STRICT (integer) PHP 5.0.0 以降で利用可能
__COMPILER_HALT_OFFSET__ (integer) PHP 5.1.0 以降で利用可能
TRUE (boolean)  
FALSE (boolean)  
NULL (boolean)  

定義済み定数 常に利用可能

以下の定数は、PHP コアに含まれており、常に利用可能です。

定数 説明 注記
1 E_ERROR (integer) 重大な実行時エラー。これは、メモリ確保に関する問題のように復帰で きないエラーを示します。スクリプトの実行は中断されます。  
2 E_WARNING (integer) 実行時の警告 (致命的なエラーではない)。スクリプトの実行は中断さ れません。  
4 E_PARSE (integer) コンパイル時のパースエラー。パースエラーはパーサでのみ生成されま す。  
8 E_NOTICE (integer) 実行時の警告。エラーを発しうる状況に遭遇したことを示す。 ただし通常のスクリプト実行の場合にもこの警告を発することがありうる。  
16 E_CORE_ERROR (integer) PHPの初期始動時点での致命的なエラー。E_ERRORに 似ているがPHPのコアによって発行される点が違う。  
32 E_CORE_WARNING (integer) (致命的ではない)警告。PHPの初期始動時に発生する。 E_WARNINGに似ているがPHPのコアによって発行される 点が違う。  
64 E_COMPILE_ERROR (integer) コンパイル時の致命的なエラー。E_ERRORに 似ているがZendスクリプティングエンジンによって発行される点が違う。  
128 E_COMPILE_WARNING (integer) コンパイル時の警告(致命的ではない)。E_WARNINGに 似ているがZendスクリプティングエンジンによって発行される点が違う。  
256 E_USER_ERROR (integer) ユーザーによって発行されるエラーメッセージ。E_ERROR に似ているがPHPコード上で trigger_error()関数を 使用した場合に発行される点が違う。  
512 E_USER_WARNING (integer) ユーザーによって発行される警告メッセージ。E_WARNING に似ているがPHPコード上で trigger_error()関数を 使用した場合に発行される点が違う。  
1024 E_USER_NOTICE (integer) ユーザーによって発行される注意メッセージ。E_NOTICEに に似ているがPHPコード上で trigger_error()関数を 使用した場合に発行される点が違う。  
2048 E_STRICT (integer) コードの相互運用性や互換性を維持するために PHP がコードの変更を提案する。 PHP 5 より
4096 E_RECOVERABLE_ERROR (integer) キャッチできる致命的なエラー。危険なエラーが発生したが、 エンジンが不安定な状態になるほどではないことを表す。 ユーザー定義のハンドラでエラーがキャッチされなかった場合 ( set_error_handler() も参照ください) は、 E_ERROR として異常終了する。 PHP 5.2.0 より
8192 E_DEPRECATED (integer) 実行時の注意。これを有効にすると、 将来のバージョンで動作しなくなるコードについての警告を受け取ることができる。 PHP 5.3.0 より
16384 E_USER_DEPRECATED (integer) ユーザー定義の警告メッセージ。これは E_DEPRECATED と同等だが、 PHP のコード上で関数 trigger_error() によって作成されるという点が異なる。 PHP 5.3.0 より
32767 E_ALL (integer) サポートされる全てのエラーと警告。 PHP 5.4.0 より前のバージョンでは、E_STRICT レベルのエラーは除く。 PHP 5.4.x では 32767、 PHP 5.3.x では 30719、 PHP 5.2.x では 6143、 それより前のバージョンでは 2047 でした。


サンプルコード

– サンプル Click Here ! –

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

投稿日:2011年10月9日
最終更新日:2017年03月19日

関連記事

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpref-magicteisu/trackback/