作成日:2006/05/10
1F 定数
1F.1 定数の定義
- 構文:定数の定義
- bool define ( string name, mixed value, bool [case_insensitive] )
PHPの定数はdefine()関数で定義する事ができます。 define()の第3パラメータ(case_insensitive)をTRUEに指定した場合、定数は大文字小文字を区別しなくなります。 デフォルトの動作は、大文字小文字を区別します。 define()関数は定数の定義に成功した場合、TRUEを返します。
定数名
- 定数名は、デフォルトで大文字小文字を区別します。
- 定数名は、慣習的に大文字で表記されます。
- 定数名は、文字またはアンダースコアで始まり、任意の数の文字、数字、アンダース コアが後に続きます。
- 名前の付け方は変数と同じです、但し、変数と異なり先頭の$は不要です。
定数値
- 定数の値はスクリプト実行中に変更できません。
- 定数として定義できるのはスカラー型(論理型/整数/浮動小数点/文字列)だけです。
定数のスコープ
- 定数のスコープはスーパーグローバルです。 即ち、スクリプト中のどこでも定数にアクセスできます。
- 定数の名前空間はグローバル変数とは異なります、即ち、グローバル変数($FOO)と定数(FOO)は別物です。
用例:
define("FOO", "something");
define("ZERO", 0);
define("PI", 3.141592653589793 );
echo FOO;
echo ZERO;
echo PI;
define("FOO", "anything"); // define()はFALSEを返します(定数は再定義できません)
echo FOO; // "something"を出力します
1F.2 定数の判定
- 構文:定数の判定
- bool defined ( string name )
PHPは未定義の定数を使用した場合、定数名と同じ文字列を値として使用します。 定数が定義されているか否かを調べるには、defined() 関数を使用します。 defined() 関数は、nameで指定した定数が定義されている場合にTRUEを返します。
用例:
if (!defined("BAR")) define("BAR", "anything");
1F.3 可変定数
- 構文:可変定数
- mixed constant ( string name )
定数を間接参照したい場合は、constant()関数を使用します。
用例:
define("FOO", "something");
$CONST = "FOO";
echo constant($CONST); // "something"を出力します
1F.4 定義済み定数
PHPには全てのスクリプトで使用できる多くの定義済みの定数をがあります。 但し、これらの定数の中には、拡張モジュールにより作成され、PHPの実行環境に依存するものが含まれます。
| 種類 | 説明 |
|---|---|
| 標準の定義済み定数 |
PHP上でデフォルトで定義されている定数です。 用例:
sort($array,SORT_STRING); // 文字列としてソートします //sort()関数のフラグとして定義されいる定数には以下のものがあります //SORT_REGULAR ,SORT_NUMERIC,SORT_STRING, SORT_LOCALE_STRING 定数の一覧は PHPマニュアル を参照して下さい。 |
| コアの定義済みの定数 |
PHPのコアで定義済みの定数です。PHP, Zend Engine, SAPIモジュールも含みます。 用例:
echo PHP_VERSION; // PHPのバージョンを表示します echo PHP_OS; // OSの名前を表示します 定数の一覧は PHPマニュアル を参照して下さい。 |
※ 定数の定義時は、PHPで定義済みの定数と衝突しない為にdefined()関数の使用を推奨します。
1F.5 マジック定数
PHPの定義済みの定数の中には、実行時に自動的に定義される定数(マジック定数)があります。
| 定数名 | 説明 |
|---|---|
__LINE__ |
ファイル上の現在の行番号を返します。 |
__FILE__ |
ファイルのフルパスとファイル名を返します。(物理ファイル名) インクルードされたファイルの中で使用された場合、そのファイルの名前が返されます。 |
__FUNCTION__ |
|
__CLASS__ |
|
__METHOD__ |
|
用例:
echo __FILE__ . "[" . __LINE__ . "]"; // ファイル名と行番号を出力します。
