フリー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_NAME
や USER_PASS
を呼び出す…というように使われます。
PHPでは、あらかじめいくつかの定数が定義済みになっています。よく使われるものには、以下のようなものがあります。
名前 | 意味 |
---|---|
__FILE__ |
実行しているPHPプログラムのファイル名 |
__LINE__ |
実行中の行数 |
TRUE |
真の値 |
FALSE |
偽の値 |
NULL |
値を持っていないという意味を表す値 |
例えば
<?php
echo __FILE__ . "<br />\n";
echo __LINE__ . "<br />\n";
?>
このように利用すると、実行しているPHPプログラムのファイル名と実行中の行数を表示することができます。
TRUE
と FALSE
は、例えば「何らかの処理が成功すれば、変数 $flag
に TRUE
を、失敗すれば FALSE
を代入する。後ほど、$flag
の値が TRUE
か FALSE
かで処理内容を変える」のように利用できます。
NULL
は、例えば「フォームから入力された電話番号を変数 $tel
に代入する。電話番号が入力されていなければ NULL
を代入しておく。」のように利用できます。
最初のうちは使いどころが解りにくいかもしれませんが、その場合は無理に使用する必要はありません。ですが、処理の結果として TRUE
や FALSE
や NULL
を返す関数はたくさんあります。また、他の人が書いたプログラムで使用されていることがありますので、こんな値があるということは知っておいた方がいいでしょう。