PHP中的静态变量是否可能释放它';s值

PHP中的静态变量是否可能释放它';s值,php,static,Php,Static,我来自OO背景,曾参加过为期3天的PHP速成班,现在我试图在一个相对较大的PHP项目中发现一些问题,我遇到的问题似乎非常奇怪(至少在其他OO语言中是如此) 所以我得到的是这样的东西: class A { static $num = 0; public static function instance($type, $options = array()) { self::$num++; // some more code here

我来自OO背景,曾参加过为期3天的PHP速成班,现在我试图在一个相对较大的PHP项目中发现一些问题,我遇到的问题似乎非常奇怪(至少在其他OO语言中是如此)

所以我得到的是这样的东西:

class A
{
    static $num = 0;

    public static function instance($type, $options = array())
    {
        self::$num++;
        // some more code here
    }
}

在对这个方法调用几十次之后,$num值再次重置为0,我想知道这怎么可能?我知道在其他语言中,比如C语言,静态的生命周期就是应用程序的生命周期。那么,PHP中静态变量重置的潜在原因是什么呢?如果这是从HTTP请求运行的,当用户更改页面或连接关闭并重新打开时,如果您的程序将产生一个全新的实例。如果是这种情况,您可能需要实现


您可能遇到此问题的另一种方法是分别引用类和类(对象)的实例化,并获取不同的值。我不太确定PHP是如何通过静态处理这种行为的,但编写一个类似于问题的测试可能会很有用。

这是不可能的。如果它改变了它的价值,那么有什么东西改变了它。首先将其更改为
private
,然后查看差异。注:使用静态不是“正确的”
OO
,但仅仅使用类可能重复您关于“应用程序生命周期”的评论可能是解开谜团的关键。您在什么环境中运行PHP?如果它是一个Web服务器,那么可能有多个应用程序实例,它们可能会在不同的时间(对您来说是任意的)重新启动。在Web服务器中配置PHP的一种常见方法是在一定次数的访问之后重新启动脚本,这可能解释您看到的行为。@Peter Smartt:嗯,什么?如果你先试试呢?你需要分享更多信息。通常使用PHP(在大多数情况下),您的程序会针对每个请求再次运行,因此生命周期非常短——这可能是问题所在吗?