章 8. 定数

PHP は、いくつかの定数を定義します。また、実行時に定数の定義を追加する 機構を提供します。 定数は変数と良く似ていますが、定数はdefine 関数を使って定義する必要があり、他の値に再定義することができないという 二つの違いがあります。

あらかじめ定義された定数(常に使用可能)を以下に示します。

__FILE__

現在処理中のスクリプトファイルの名前。includeあるいはrequireにより 読みこまれたファイルで使用された場合、親ファイルではなく インクルードされたファイルとなります。

__LINE__

カレントのスクリプトファイルの現在処理中の行の番号。 includeあるいはrequireされたファイルで使用された場合、 includeされたファイルの中での位置となります。

PHP_VERSION

現在使用中のPHPパーサのバージョンを表す文字列。 例:'3.0.8-dev'

PHP_OS

PHPパーサを実行中のオペレーティングシステムの名前。 例:'Linux'

TRUE

真。

FALSE

偽。

E_ERROR

構文エラー以外の回復不能なエラーを定義します。

E_WARNING

何か誤りがあるが、それでも実行を継続する条件を定義します。 スクリプト自体によりエラー処理を行うことが可能です。 例えばeregにおける正規表現が不正であった 場合に発生します。

E_PARSE

スクリプトファイルの不正な構文によりパーサの処理が中断した 状態です。回復は不可能です。

E_NOTICE

エラーであるかにかかわらず何かが起きました。実行は継続されます。 例えば、引用符で括られていない文字列をハッシュインデックスとして 使用した場合や設定されていない変数にアクセスした場合。

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!");
?>