##PHPで定数を使ってみた
ちなみに定数とは
const キーワードか、 define() 関数を使うことで、定数を宣言することが出来ます。 define() を使えば任意の式を使って定数を定義できますが、 const キーワードを使う場合には、 次の段落で説明する制約があります。 定数が一度定義されると、 変更または未定義とすることはできません。
みなさんPHPで定数って使ってますか??
私は古いシステムを修正することが多いのですが、定数を使っているプログラムは非常に少ないです。(あくまで私の偏見ですが)
私は師匠に定数は積極的に使っていけと習ったので、プログラムの先頭には定数が並んでいる場合が多いです。
DBに保存される際にINT型で保存されるけれど、画面に出力される時は日本語で表示してね、といった文言は是非定数を使ってあらかじめ定義しておきたいですね。
例)曜日、旧暦、性別など
<?php
//9月12日(日)作成
const WEEK_ARRAY = array("日","月","火","水","木","金","土");
$week = date("w");
echo WEEK_ARRAY[$week];
//日
const MONTH_ARRAY = array("","睦月","如月","弥生","卯月","皐月","水無月","文月","葉月","長月","神無月","霜月","師走");
$month = date("n");
echo MONTH_ARRAY[$month];
//長月
const GENDER_ARRAY = array("その他","男","女");
$gender = 1;
echo GENDER_ARRAY[$gender];
//男
?>
上記のような例だとほぼ変わることはありませんが
例えば業務システムのステータスなどは仕様変更などで文言が変わることはよくある話だと思います。
仕様変更のたびに条件式を書いてある部分を探し出して書き直すといったことは非常にめんどくさいので、プログラムの先頭に定数で宣言しておけば修正も楽々できますね。
例)登録状況、評価表示、通貨など
<?php
const REGIST_STATUS_ARRAY = array("未登録","仮登録","登録済","退会済");
$register = 1;
echo REGIST_STATUS_ARRAY[$register];
//仮登録
const EVAL_STATUS_ARRAY = array("","GOOD","NICE","GREAT","EXCELLENT");
$evaluation = 3;
echo EVAL_STATUS_ARRAY[$evaluation];
//GREAT
const MONNEY_TYPE_ARRAY = array("円","ドル","ウォン","","","");
$monney_type = 0;
echo MONNEY_TYPE_ARRAY[$monney_type];
//円
?>
これらはよく仕様変更や追加項目がありそうな部類だと思いますが、こうして定数でまとめておけば急な仕様変更や追加項目があっても対応が早そうですね♪