Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么在下面的代码中使用静态变量?_Php - Fatal编程技术网

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

Php 为什么在下面的代码中使用静态变量?,php,Php,首先,我知道PHP的基础知识,但我就是不明白事情是如何运作的。我有以下代码,允许用户通过启动函数init(),通过函数hooksInit()为其帐户分配密码。我需要知道为什么使用静态变量。我已经读到,如果没有这个静态变量,将会有很多来自数据库的请求,但我不明白为什么会有很多来自数据库的请求。如果可能的话,请保持简单 class WPHawy_CRP { private static $_instance = null; /* * The Constructor. */ public sta

首先,我知道
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;
}

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

关键字“static”意味着您可以在不实例化类的情况下使用它

例如:
WPHawy\u CRP::init()

变量
$\u instance
也是静态的,用于在静态函数中使用


具体地说,这段代码遵循一种称为“Singleton”的特定设计模式,允许您确保一个类只有一个实例。

它基本上确保您只使用一个类实例,即aka。辛格尔顿,好的。你能举一个用户注册过程的例子吗。我的意思是哪个实例将被使用一次。任何你想要的例子。你的例子不限于我发布的代码。我只需要知道这个过程是如何进行的。也许这是一个很好的例子:谢谢你,伙计,你已经尽力了。我想这篇文章有我的答案这正是发生的事情,但是什么让我保留了静态变量的值。我只是认为这是对wordpress登录页面的修改,允许用户添加自己的密码。我认为这个类会为一个用户调用一次,那么是什么让它对数据库应用更多的请求,这就是为什么这个类使用静态变量。对不起,我英语不好