4

最初に考えていたよりも多くの関数でアクセスする必要がある変数がいくつかあります。

増え続ける関数のリストにそれらを含める最良の方法は何でしょうか?

私は次のようなものを持っています

$site = 'a';
$admin = 'b';
$dir = 'c';
$ma_plug = 'd';
$base = 'e';
//Etc.

私は自分の関数の大部分でそれらのほとんどすべてを必要としています。最初はやってた

function a(){
    global  $site, $admin, $dir, $ma_plug, $base;
    //Write the A function
}
function b(){
    global  $site, $admin, $dir, $ma_plug, $base;
    //Write the B function
}

最初に考えていたよりも多くの関数を書く必要があることに気付くまでは、それは素晴らしいことでした。

これらすべての変数を (ほぼ) 各関数のスコープに入れる最良の方法は何でしょうか? 私がしたように?または、定数を使用するようなものですか?session()できれば使用を避けたい

4

1 に答える 1

6

これらの関数がこれらの変数を使用する唯一のものである場合、これらの変数がローカルであるクラスを作成する方がよい場合があります。

そうすれば、グローバル名前空間を汚染せずglobal、すべての関数でキーワードを使用する必要がなくなります。

例えば:

class MySite {
    private $site;
    private $admin;
    private $dir;
    private $ma_plug;
    private $base;

    function __construct($site, $admin, $dir, $ma, $base) {
       $this->site = $site;
       $this->admin = $admin;
       //...
    }
}
于 2013-01-03T18:00:39.970 に答える