定数
自動的に定義される定数
定数
PHP Manual

## 構文

define() 関数を使用することにより、 定数を定義することが可能です。PHP 5.3.0 以降では、 クラス定義の外部で const キーワードを使って定数を定義することもできます。 定数が一度定義されると、 変更または未定義とすることはできません。

定数に指定できるのは、スカラデータ (boolean, integer, double, string) のみです。 resource の定数を指定することもできますが、 予期せぬ結果を引き起こすことがあるので避けるべきです。

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

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

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

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

- 定数は、前にドル記号($)を要しません。
- 定数を定義することができるのは、 define()関数 のみです。単なる代入による定義はできません。
- 定数は、定義することができ、変数のスコープ規則に関係なく、あら ゆる場所からアクセス可能です。
- 定数は一度設定されると再定義または未定義とすることはできません。
- 定数は、スカラー値としてのみ評価可能です。

例1 定数の定義

`<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // "Hello world."を出力
echo Constant; // "Constant" を出力し、警告 (notice) を発行
?>`

例2 const キーワードによる定数の定義

`<?php
// PHP 5.3.0 以降で動作します
const CONSTANT = 'Hello World';
echo CONSTANT;
?>`

> 注意:

> define() による定数の定義とは反対に、 const キーワードで定義した定数はトップレベルのスコープで宣言しなければなりません。 これはコンパイル時に定義されるからです。 つまり、関数やループ、そして if 文の内部では宣言できないということです。

オブジェクト定数 も参照ください。

定数
自動的に定義される定数
定数
PHP Manual