定数とは、データに名前を付けたもの。定義した値の別名とも言える。
定数の特徴
- 一度定義した定数は、再定義することや、未定義とすることはできない。
- 変数と異なり、ドル記号
$
を付ける必要はない。 - 定数の定義には、define()関数を使う。単なる代入による定義はできない。
- 関数の内部でも外部でも、プログラム全体で呼び出せる。
- 扱えるデータは、スカラデータ型のみ。スカラデータ型とは、論理型(boolean)、整数型(integer)、浮動小数点数型(double)、文字列型(string)の4つのデータ型。
定数の命名規則
- 定数名の一文字目は、文字、もしくは、アンダースコア
_
でなければならない。 - 定数名の二文字目以降目は、文字、数字、アンダースコア
_
を使える。 - 大文字と小文字を区別するが、常に大文字で表記することが多い。define()関数の3つ目の引数で、大文字と小文字を区別しないか設定できる。
特に注意すべき点は二つ。
- アンダースコア
_
以外の記号は使えない。 - 変数名の一文字目に、数字は使えない。
定数の定義
定数の定義には、define()関数を使う。
define( 定数名, 値 );
サンプル
<?php
define( "RED", "赤色" );
echo 'RED: ' . RED;
?>
define( "RED", "赤色" );
echo 'RED: ' . RED;
?>
↓↓↓出力結果↓↓↓
RED: 赤色
大文字と小文字を区別しないで定義
define()関数の3つ目の引数で、大文字と小文字を区別しないか設定できる。
「TRUE」を指定すると、大文字と小文字を区別しない。
「FALSE」を指定するか、指定を省略すると、大文字と小文字を区別する。
define( 定数名, 値, 論理値 );
サンプル
<?php
define( "RED", "赤色", TRUE );
echo '<p>RED: ' . RED . '</p>';
echo '<p>Red: ' . Red . '</p>';
echo '<p>red: ' . red . '</p>';
?>
define( "RED", "赤色", TRUE );
echo '<p>RED: ' . RED . '</p>';
echo '<p>Red: ' . Red . '</p>';
echo '<p>red: ' . red . '</p>';
?>
↓↓↓出力結果↓↓↓
RED: 赤色
Red: 赤色
red: 赤色
Red: 赤色
red: 赤色
定数が定義されているか確認
定数が定義されているか確認するには、defined()関数を使う。
defined( 定数名 );
定数名に指定した名前の定数が定義されていれば、「TRUE」、定義されていなければ「FALSE」を返す。
サンプル
<?php
define( "TAX", 0.05 );
$price = 100;
if ( defined( 'TAX' ) ) {
echo "<p>税抜: $price</p>";
echo '<p>税込: ' . $price * ( 1 + TAX ) . '</p>';
} else {
echo '税率が設定されていません。';
}
?>
define( "TAX", 0.05 );
$price = 100;
if ( defined( 'TAX' ) ) {
echo "<p>税抜: $price</p>";
echo '<p>税込: ' . $price * ( 1 + TAX ) . '</p>';
} else {
echo '税率が設定されていません。';
}
?>
↓↓↓出力結果↓↓↓
税抜: 100
税込: 105
税込: 105