PHP は、いくつかの定数を定義します。また、実行時に定数の定義を追加する 機構を提供します。 定数は変数と良く似ていますが、定数はdefine 関数を使って定義する必要があり、他の値に再定義することができないという 二つの違いがあります。
あらかじめ定義された定数(常に使用可能)を以下に示します。
現在処理中のスクリプトファイルの名前。includeあるいはrequireにより 読みこまれたファイルで使用された場合、親ファイルではなく インクルードされたファイルとなります。
カレントのスクリプトファイルの現在処理中の行の番号。 includeあるいはrequireされたファイルで使用された場合、 includeされたファイルの中での位置となります。
現在使用中のPHPパーサのバージョンを表す文字列。 例:'3.0.8-dev'
PHPパーサを実行中のオペレーティングシステムの名前。 例:'Linux'
真。
偽。
構文エラー以外の回復不能なエラーを定義します。
何か誤りがあるが、それでも実行を継続する条件を定義します。 スクリプト自体によりエラー処理を行うことが可能です。 例えばeregにおける正規表現が不正であった 場合に発生します。
スクリプトファイルの不正な構文によりパーサの処理が中断した 状態です。回復は不可能です。
エラーであるかにかかわらず何かが起きました。実行は継続されます。 例えば、引用符で括られていない文字列をハッシュインデックスとして 使用した場合や設定されていない変数にアクセスした場合。
E_* 定数は、エラーレポートレベルを設定するために通常 error_reporting 関数と共に使用されます。
define 関数により定数の定義を追加することができます。
これらは定数であり、C 言語のマクロではないことに注意してください。 有効なスカラーデータのみが定数として表現可能です。
例 8-1. 定数の定義
<?php define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." ?>
例 8-2. __FILE__ および __LINE__ の使用
<?php function report_error($file, $line, $message) { echo "An error occured in $file on line $line: $message."; } report_error(__FILE__,__LINE__, "Something went wrong!"); ?>