重複の可能性:
レジストリの設計パターン…良いか悪いか?
私は PHP を使用するゲーム スクリプトに取り組んでおり、多くの Web サイトを構築する方法と同様の方法でアプローチしています。私は、実行に重要な他の多くの変数を保持する stdClass である単一の変数を宣言する習慣があります。次に、関数内で何かが必要になった場合 (パラメーターで渡されない場合)、単純にグローバル $variable (この場合は $ar) を使用します。
$ar = new stdClass;
$ar->i = new stdClass;
$ar->s = new stdClass;
$ar->i->root = "/home/user";
/* Directory where log files are to be stored. */
$ar->i->logs = "{$ar->i->root}/logs";
/* Directory where the banlist is. */
$ar->i->bl = "{$ar->i->root}/customize/settings/bannedaccounts.txt";
/* Directory where the silencelist is. */
$ar->i->sl = "{$ar->i->root}/customize/settings/silencedaccounts.txt";
/* How many points should be awarded for 1st place, 2nd place... etc. */
$ar->s->points = array(10, 7, 5, 4, 3, 2, 1, 1, 1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1);
したがって、上記の変数のいずれかを関数で使用する場合は、次のようにアプローチします。
public function run() {
global $ar;
//do something with the variable..
}
これをしないようにアドバイスする人はいますか?単一の変数を使用し、それを多くの関数に含めることは避けるべき悪い習慣ですか? 指定されたパラメーターだけで機能する関数を作成することが望ましいことはわかっていますが、プログラミングの明確さではなく、PHP のパフォーマンスに関してこれを求めています。ありがとう!