PHP中的静态类是不好的做法?

时间:2011-06-24 17:59:57

标签: php static-classes

我想知道其他人对他们的看法。

(“静态类”是指所有函数和变量都是静态的类。)

我发现它们非常实用。我有这个通过$ Db访问的PDO自定义类,并且我必须在每个必须对数据库进行查询的函数上使用“全局$ Db”。

我刚刚发现了静态类以及它们如何不需要在函数中进行全局化。我使PDO类成为一个静态类,从使用它的函数中删除所有“全局$ Db”并将其称为DB :: function(),它像以前一样工作,没有问题,我不会有到现在为止“全球$ Db”。我很想和我经常使用的其他课程做同样的事情。

所以我觉得做一件好事太好了。或者是吗?

1 个答案:

答案 0 :(得分: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

}