PHP 定数


PHP における定数とは、一度定義されるとその値を変更できない識別子のことです。

定数の値は定義後、スクリプトの他のどこからでも変更できません。

定数は、define()関数またはconstキーワードで定義できます。

定数の特性


PHP 定数

  1. 不変性: 定数は一度定義すると、その値を変更できません。
  2. グローバルスコープ: 定数は定義後、スクリプト全体のどこでも使用でき、globalキーワードを使用する必要はありません。
  3. データ型: 定数の値は、スカラーデータ型(ブール値、整数、浮動小数点数、文字列など)または配列(PHP 7 以降)にすることができます。
  4. 大文字と小文字の区別: 定数名はデフォルトで大文字と小文字を区別します。大文字と小文字を区別しない定数を定義する場合は、define()関数の3番目のパラメータに設定します。true。

定数は単純な値の識別子であり、その値はスクリプト内で変更できません。

定数は英字、アンダースコア、数字で構成されますが、数字を先頭に使用することはできません。(定数名に $ 修飾子を付ける必要はありません。)

注意:定数はスクリプト全体で使用できます。


PHP 定数の設定

定数を設定するには、define() 関数を使用します。関数の構文は次のとおりです:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

この関数には3つのパラメータがあります:

  • name:必須パラメータ。定数名、つまり識別子です。

  • value:必須パラメータ。定数の値です。

  • case_insensitive :オプションのパラメータ。TRUE に設定すると、その定数は大文字と小文字を区別しません。デフォルトでは大文字と小文字を区別します。

    注意:PHP 7.3.0 以降、大文字と小文字を区別しない定数の定義は非推奨となりました。PHP 8.0.0 以降、false のみが受け入れ可能な値であり、true を渡すと警告が発生します。

次の例では、大文字と小文字を区別する定数(PHP 7.3 以降のバージョンでは非推奨)を作成します。定数値は "欢迎访问 example.com" です:

例

<?php //大文字と小文字を区別する定数名 define("GREETING", "欢迎访问 example.com"); echo GREETING; //"欢迎访问 example.com" を出力します echo '<br>'; echo greeting; //"greeting" を出力しますが、定数が未定義であることを示す警告メッセージが表示されます ?>

次の例では、大文字と小文字を区別しない定数を作成します。定数値は "欢迎访问 example.com" です:

例

<?php //大文字と小文字を区別しない定数名 define("GREETING", "欢迎访问 example.com", true); echo greeting; //"欢迎访问 example.com" を出力します ?>

定数はグローバルです

定数は定義後、デフォルトでグローバル変数となり、実行中のスクリプト全体のどこでも使用できます。

次の例では、関数内で定数を使用する方法を示します。定数が関数の外で定義されていても、正常に使用できます。

例

<?php define("GREETING", "欢迎访问 example.com"); function myTest() { echo GREETING; } myTest(); //"欢迎访问 example.com" を出力します ?>

const キーワードを使用する

const CONSTANT_NAME = "value";

以下は、const キーワードを使用して定数を定義する例です:

例

const SITE_URL = "https://www.example.com";
echo SITE_URL; // "https://www.example.com" を出力

定義済み定数

PHP には、スクリプト内で直接使用できる定義済み定数がいくつか用意されています。これらの定数は通常、PHP の設定情報やバージョン情報などを取得するために使用されます。一般的な定義済み定数には次のものがあります:

  • PHP_VERSION:現在の PHP パーサーのバージョン。
  • PHP_OS:サーバーのオペレーティングシステム。
  • PHP_INT_MAX:最大の整数値。
  • E_ERROR、E_WARNING、E_PARSEなど:エラーレポートレベル。

例

echo PHP_VERSION; // PHP バージョンを出力、例: "7.4.1"
echo PHP_OS;      // オペレーティングシステムを出力、例: "Linux"
echo PHP_INT_MAX; // 最大の整数値を出力、例: "9223372036854775807"

定数配列(PHP 7 以降)

PHP 7 以降では、定数は配列にすることもできます。

例

define("FRUITS", [
    "Apple",
    "Banana",
    "Orange"
]);

echo FRUITS[0]; // "Apple" を出力

または const を使用します:

例

const COLORS = [
    "Red",
    "Green",
    "Blue"
];

echo COLORS[1]; // "Green" を出力
その他の拡張