PHP中的静态变量是否有可能失去它的价值

时间:2014-02-11 21:11:15

标签: 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
    }
}

并且在几次调用此方法之后,$ num值再次重置为0,我想知道这怎么可能?我知道在C#等其他语言中,静态的生命周期是应用程序的生命周期。那么PHP中静态变量重置的潜在原因是什么?

1 个答案:

答案 0 :(得分:0)

如果这是从HTTP请求运行,当用户更改页面或关闭并重新打开连接时,如果您的程序将导致一个全新的实例。如果是这种情况,您可能需要实施session variables

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

相关问题