PHP マニュアル
前のページ |  | 次のページ

# 第 8章定数

定数は簡単な値のためのID(名前)です。この名前が示すように、定数の値 はスクリプト実行中に変更できません。(magic constantsは 例外で、これらは実際は定数ではありません。) デフォルトで定数では大文字小文字を区別します。慣習的に定数は常に大 文字で表記されます。

定数の名前は、PHPのラベルと同じ規則に従います。有効な定数の名前は、 文字またはアンダースコアで始まり、任意の数の文字、数字、アンダース コアが後に続きます。正規表現で示すと、次のようになります。 `[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*`

> 注意: 本節の目的においては、文字は a-z, A-Z, および127から255まで (0x7f-0xff)のASCII文字を指します。

superglobalsと同様に定数のスコープはグローバルです。 つまり、スコープによらずスクリプトの中ではどこでも定数に アクセスできます。スコープの詳細についてはマニュアルの 変数のスコープ をご覧ください。

# 構文

define()関数を使用することにより、定数を定義す ることが可能です。定数が一度定義されると、変更または未定義とするこ とはできません。

スカラーデータ(boolean, integer, double, string) のみが定数の中に含むこと が可能です。

単に定数の名前を指定することにより、その値を得ることが可能です。 変数とは異なり、その前に`$`は不要です。 定数の名前を動的に得る必要がある場合、定数の値を読むために関数 constant()を使用することも可能です。 定義済の定数の一覧を得るには、 get_defined_constants()を使用して下さい。

> 注意: 定数と(グローバル)変数は、異なる名前空間にあります。 例えば、`TRUE` と `$TRUE` は違うものを意味します。

未定義の定数を使用した場合、ちょうどstringとして コールしたかのように(CONSTANT vs "CONSTANT")、 PHPはその定数自体の名前を使用したと仮定します。 この際、E_NOTICE が発生します。 ある定数が設定されているかどうかを知るには、 defined() 関数を使用して下さい。 なぜ $foo[bar]が間違っている （まず`bar`を定数としてdefine()しなければ） のかというマニュアルもご覧ください。 定数がセットされているかを単にチェックするには defined()を使用してください。

変数との違いは次のようになります。

- 定数は、前にドル記号(`$`)を要しません。

- 定数を定義することができるのは、define()関数 のみです。単なる代入による定義はできません。

- 定数は、定義することができ、変数のスコープ規則に関係なく、あら ゆる場所からアクセス可能です。

- 定数は一度設定されると再定義または未定義とすることはできません。

- 定数は、スカラー値としてのみ評価可能です。

例 8-1. 定数の定義

`<?php define("CONSTANT", "Hello world."); echo CONSTANT; // "Hello world."を出力 echo Constant; // outputs "Constant" および通知を発生。 ?>`

前のページ | ホーム | 次のページ
PHPの外部から来る変数 | 上に戻る | 定義済の定数