定数

トップ > PHP入門 > 定数

目次

広告

定数について

PHPには値を保持するための手段として、変数以外に定数があります。基本的な考え方は変数と同じですが、定数では、一度値を格納すると変更できなくなります。例えば

<?php

define("sample", 10);
echo sample;

?>

と書くと、sample という名前の定数の中に 10 という値が格納され、直後でその内容を表示します。定数の内容を表示するときは、定数名の先頭に $ を付ける必要はありません。

define は定数を定義するための関数です。define には2つの値を渡し、1つ目の値が定数名、2つ目の値が定数に格納する値になります。

変数には数字だけでなく、文字列を保存することもできます。例えば

<?php

define("sample", "定数のテスト");
echo sample;

?>

と書くと、sample という名前の定数の中に 定数のテスト という値が格納されます。保存する値が文字列の場合、変数の時と同様 "' で囲んで指定します。

先ほど紹介したように、定数はその内容を変更することができません。つまり

<?php

define("sample", 10);
define("sample", 20);
echo sample;

?>

と書くと警告が表示されます。(PHPの設定によっては警告は表示されませんが、やはり定数の内容は変更されません。)一度定義すると変更ができないので、プログラムの設定項目などを定数で定義することが多いです。
また、定数はすべて大文字で記述されることが多いです。(文法上の制限はありません。)つまり

<?php

define("USER_NAME", "taro");
define("USER_PASS", 1234);

?>

このようにプログラムの最初で定義しておき、必要に応じて USER_NAMEUSER_PASS を呼び出す…というように使われます。

定義済みの変数

PHPでは、あらかじめいくつかの定数が定義済みになっています。よく使われるものには、以下のようなものがあります。

名前 意味
__FILE__ 実行しているPHPプログラムのファイル名
__LINE__ 実行中の行数
TRUE 真の値
FALSE 偽の値
NULL 値を持っていないという意味を表す値

例えば

<?php

echo __FILE__ . "<br />\n";
echo __LINE__ . "<br />\n";

?>

このように利用すると、実行しているPHPプログラムのファイル名と実行中の行数を表示することができます。

TRUEFALSE は、例えば「何らかの処理が成功すれば、変数 $flagTRUE を、失敗すれば FALSE を代入する。後ほど、$flag の値が TRUEFALSE かで処理内容を変える」のように利用できます。

NULL は、例えば「フォームから入力された電話番号を変数 $tel に代入する。電話番号が入力されていなければ NULL を代入しておく。」のように利用できます。

最初のうちは使いどころが解りにくいかもしれませんが、その場合は無理に使用する必要はありません。ですが、処理の結果として TRUEFALSENULL を返す関数はたくさんあります。また、他の人が書いたプログラムで使用されていることがありますので、こんな値があるということは知っておいた方がいいでしょう。