PHP - 定数の構文

定数の構文

PHP の定数は const キーワードか、define() 関数を使うことで、定数を宣言することが出来ます。定数が一度定義されると、変更または未定義とすることはできません。もしも未定義の定数を使用した場合、Error がスローされます。

define() を使えば任意の式を使って定数を定義できますが、const キーワードで定数に指定できるのは、スカラー式 (bool, int, double, string) と、スカラー式だけを含んだ array のみである制約があります。

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

<?php
  define("CONSTANT", "Hello world.");
  
  echo CONSTANT; // "Hello world."
  echo Constant; // エラーが発生: Undefined constant "Constant" (PHP 8.0.0 以降)
?>
define() 関数を使った定数の定義
<?php
  // スカラー値
  const CONSTANT = 'Hello World';

  // スカラー式
  const ANOTHER_CONST = CONSTANT.'; Goodbye World';

  // スカラー式 (array)
  const ANIMALS = array('dog', 'cat', 'bird');
?>
const キーワードによる定数の定義

注意しなければならない点として、const キーワードで定義した定数はトップレベルのスコープで宣言しなければなりません。つまり、関数、ループ、if 文、または try/catch ブロックの内部では宣言できません。また、PHP 8.0.0 より前のバージョンでは、define() 関数を使って定義された定数は、大文字小文字を区別しません。

関連記事