2015-10-15 42 views
1

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

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

Google:singleton –

+0

它基本上确保您只使用该类的一个实例,又名。单身。 – Dencker

回答

0

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

+0

好的。您能否请用户注册过程举个例子。我的意思是哪个实例将被使用一次。任何你想要的例子。你不限于我发布的代码。我只需要不要过程如何。 –

+0

也许这可能是一个很好的例子:http://bornageek.com/101/the-registry-pattern-and-php –

+0

谢谢你,你做了你最好的。我认为这个帖子有我的回答 –

1

关键字“静态”意味着它是一个函数,您将能够使用而无需实例化类。

例如:WPHawy_CRP::init()

可变$_instance也是静态静态功能内所使用的目的。

具体来说,该代码如下称为“单身”具体的设计模式,并允许你确保你将有只有1类的实例。

+0

这正是发生了什么,但是什么让我保留静态变量的价值。我只是认为这是对WordPress的登录页面的修改,允许用户添加自己的密码。我认为这个类会为一个用户调用一次,那么为什么这个类会使用静态变量为什么会将更多的请求应用到数据库。对不起,我的英语不好 –

相关问题