2

他の人が彼らについてどう思っているか知りたいです。

(「静的クラス」とは、すべての関数と変数が静的であるクラスを意味します)。

私はそれらが非常に実用的であることを発見しました。$Db を介してアクセスする PDO 用のカスタム クラスがあり、データベースに対してクエリを実行する必要があるすべての関数で "グローバル $Db" を実行する必要がありました。

静的クラスと、それらを関数でグローバル化する必要がないことを知りました。PDO クラスを静的クラスにし、それを使用する関数からすべての「グローバル $Db」を削除し、DB::function() のように呼び出しました。以前と同じように問題なく動作し、これからは "global $Db" に。よく使う他のクラスでも同じことをしたくなる。

だから私はそれが良いことだとは思えません。またはそれは?

4

1 に答える 1

0

PHPで同様のことを行うには、シングルトン静的関数を使用して、すべてのコード全体でクラスのオブジェクトの単一インスタンスを実行できます。

class MyClass
{
    private static $s_instance;

    public static function getInstance()
    {
        if (!self::$s_instance)
        {
            self::$s_instance = new MyClass();
        }

        return self::$s_instance;
    }

    private function __construct(...) { ... }

    // All your non-static stuff

}
于 2011-06-24T18:07:05.273 に答える