« 外部から来る変数
構文 »

定数

目次

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

注意:

PHP 8.0.0 より前のバージョンでは、 define() 関数を使って定義された定数は、 大文字小文字を区別しない場合がありました。

注意:

PHP 8.5.0 以降、すでに定義されている定数を再宣言することは非推奨です。

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

define() 関数を使うと、 予約語や有効でない名前の定数を定義することが可能です。 この場合の定数の値は constant() 関数によってのみ取得できますが、 このような使い方は推奨できません。

ヒント

ユーザーレベルでの命名の手引き も参照ください。

例1 有効/無効な定数名の例

<?php

// 有効な定数名
define("FOO",     "something");
define("FOO2",    "something else");
define("FOO_BAR", "something more");

// 無効な定数名
define("2FOO",    "something");

// 有効だが、避けるべき。
// 将来 PHP に定数の予約語が追加された場合に
// スクリプトが動作しなくなる可能性がある
define("__FOO__", "something");

注意:

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

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

注意:

PHP 7.1.0 以降では、クラス定数は protected または private として宣言でき、 それが定義されたクラス階層のスコープでのみ利用可能にすることができます。

関連キーワード:
定数   define   something   スコープ   スクリプト   大文字   変数   構文   マジック   小文字   区別   宣言   アンダー   スコア   予約   無効   外部   言語   リファレンス   目次   自動的   実際   慣習   表記   非推奨
関連する関数・ページ:
function.define   language.constants.syntax   language.constants.predefined   language.constants.magic   posix.constants   ffi.load