PHPの定義済み定数1
そふぃのPHP入門 >> PHP言語リファレンス >> PHPの定数 >> PHPの定義済み定数1

PHPの定義済み定数1

PHPの定義済み定数

PHPには多くの定義済み定数が用意されています。定義済み定数とはPHPによってあらかじめ定義されている定数の事です。define()関数で宣言しなくても使えます。たくさんの定義済み定数がありますが、設定や拡張モジュールによっては使えないものも多くあります。その辺は各自の環境によって違ってきますので、定義済み定数の一覧を取得する関数get_defined_constants()関数などを使用して調べて下さい。

さらに、特別定数としてマジカル定数と呼ばれるものがあります。マジカル定数は厳密には定数ではないそうです。使われ方によって値が変化するからでしょうか。

マジカル定数

PHPによるマジカル定数
定数名 説明
__LINE__ ファイル上の現在の行番号
__FILE__ ファイルのフルパスとファイル名
__FUNCTION__ 関数名(PHP4.3.0で追加)
__CLASS__ クラス名(PHP4.3.0で追加)
__METHOD__ クラスのメソッド名(PHP5.0.0で追加)

マジカル定数とはPHPですでに定義されている定数のうち使われ方によって変化する定数をいいます。この定数は、大文字・小文字を区別しません。

ちなみに、定数名の左右にあるアンダーバー「_」は2つ繋がってます。「アンダーバー×2 名前 アンダーバー×2」です。これの空白は見やすくするために入れてるだけですので実際書く時は入れないで下さい。

定義済み定数

PHPによる定義済み定数
定数名 説明
PHP_VERSION phpのバージョン string
PHP_OS phpが稼働しているOS string
DEFAULT_INCLUDE_PATH   string
PEAR_INSTALL_DIR   string
PEAR_EXTENSION_DIR   string
PHP_EXTENSION_DIR   string
PHP_BINDIR   string
PHP_LIBDIR   string
PHP_DATADIR   string
PHP_SYSCONFDIR   string
PHP_LOCALSTATEDIR   string
PHP_CONFIG_FILE_PATH   string
PHP_OUTPUT_HANDLER_START   string
PHP_OUTPUT_HANDLER_CONT   integer
PHP_OUTPUT_HANDLER_END   integer
TRUE 真 大文字・小文字を区別しない boolean
FALSE 偽 大文字・小文字を区別しない boolean
NULL ヌル値 大文字・小文字を区別しない null
ZEND_THREAD_SAFE 使用できるかどうかはPHP・サーバの設定に依存  

エラー定数

エラー報告レベルを表す定数
ビット値 定数 説明
1 E_ERROR 重大な実行時エラー。関数からリターンした後スクリプトの実行が中止されます。 このエラーは、メモリ確保に関する問題など回復不可能なエラーが発生したことを示します。このエラーはデフォルトで出力されます。 integer
2 E_WARNING 実行時の警告。デフォルトで出力されますがスクリプトの実行の中断はしません。このエラーはコール前にスクリプトから取り除いておくべき問題があることを示します。 integer
4 E_PARSE 文法ミス。PARSEエラーは、パーサにより生成されます。文法ミスなどのエラーです。 integer
8 E_NOTICE 実行時の警告。スクリプト実行時に何かエラーが発生したが通常のスクリプト実行を継続できることを示します。例えば値が定義されていない変数を参照しようとした場合などです。 デフォルトの設定では表示されません。 integer
16 E_CORE_ERROR PHPのコアにより生成される点を除いてE_ERROR と同じです。関数はこのエラーを生成しません。 integer
32 E_CORE_WARNING PHPのコアにより生成される点を除いてE_WARNINGと同じです。関数はこのエラーを生成しません。 integer
64 E_COMPILE_ERROR E_ERRORに似ていますがこちらはZendスクリプトエンジンにより生成されたものです。関数はこのエラーを生成しません。 integer
128 E_COMPILE_WARNING E_WARNINGに似ていますがこちらはZendスクリプトエンジンにより生成されたものです。関数はこのタイプのエラーを生成しません。 integer
256 E_USER_ERROR E_ERRORに似ていますがこちらはtrigger_error関数を使用することによりphpコード内で生成されたものです。関数はこのエラーを生成しません。 integer
512 E_USER_WARNING E_WARNINGに似ていますがこちらはtrigger_error関数を使用することによりphpコード内で生成されたものです。関数はこのエラーを生成しません。 integer
1024 E_USER_NOTICE E_NOTICEに似ていますが、こちらはtrigger_error関数を使用することによりphpコード内で生成されたものです。関数はこのエラーを生成しません。 integer
2047 E_ALL 上記の全てのエラーが含まれます。ALLを使うと全てのタイプのエラーが生成されます。下のE_STRICTは含まれないので注意。 integer

エラー定数にはこの他に「E_STRICT」がありますが、これはPHP5から追加されたエラーレベルでコアの定義済み定数には含まれないようです。E_STRICTはE_ALLに含まれないので、E_ALLを使った場合でもE_STRICTは別に宣言する必要があります。すべてのエラー定数の一覧と詳細はエラー処理・ログ記録関数のに載せていますので参考にして下さい。