グローバル変数の整理法


言語

PHP

グローバル変数と書きましたが、ローカル変数でも応用できます。

整理法1

こんなグローバル変数があるとします。

$bara   = 1; //バラ
$kiku   = 2; //菊
$sakura = 3; //桜
$ume    = 4; //梅
$tulip  = 5; //チューリップ

これらを関数内で使う場合、いちいち global $bara; global $kiku; ・・・ と宣言しなければなりません。

こんな時は、関連する複数の変数を1つにまとめるとよいです

$flower = array();
$flower['B'] = 1; //バラ
$flower['K'] = 2; //菊
$flower['S'] = 3; //桜
$flower['U'] = 4; //梅
$flower['T'] = 5; //チューリップ

関数内で使うときも global $flower; と1行でOKです

$flower[0], $flower[1] のような単なる連番だと保守性が落ちるので、私はアルファベット1文字の連想配列にしています。

整理法2

関連する複数の変数を、クラスにまとめる方法もあります。

class flower {
    public $bara   = array(); //バラTBL
    public $kiku   = array(); //菊TBL
    public $sakura = array(); //桜TBL
    public $ume    = array(); //梅TBL
    public $tulip  = array(); //チューリップTBL
}

$flower = new flower();

メソッドも何もない、変数をまとめただけのクラスです。

このクラス方式は、複数のDBテーブルのデータをまとめる用に使うと便利です。
関数内で使うときも global $flower; と やはり1行でOKです。