为什么要在下面的代码中使用静态变量?

时间:2015-10-15 12:45:55

标签: php

首先,我了解PHP的基础知识,但我无法理解事情是如何运作的。我有以下代码,允许用户通过启动函数hooksInit()通过函数init()为其帐户分配密码。我需要知道为什么使用静态变量。我已经读过,如果没有这个静态变量,会有很多来自数据库的请求,但我无法理解为什么会有来自数据库的大量请求。如果可能,请保持简单。

class WPHawy_CRP {

private static $_instance = null;


/*
* The Constructor.
*/
public static function init() {

    if ( null == self::$_instance ) {

        self::$_instance = new self;

        self::$_instance->hooksInit();

    }

    return self::$_instance;
}

2 个答案:

答案 0 :(得分:1)

关键字“static”表示它是一个可以在不实例化类的情况下使用的函数。

例如:WPHawy_CRP::init()

变量$_instance也是静态的,目的是在静态函数中使用。

具体来说,此代码遵循名为 “Singleton” 的特定设计模式,并允许您确保只有一个类的实例。

答案 1 :(得分:0)

这是单例模式的简单实现。请参阅示例this question。此模式的主要优点是只允许在Web应用程序中使用一个对象实例。在数据库连接期间广泛使用此模式,我们希望在整个Web应用程序中只共享一个数据库连接。