是否会在多个会话中保留php Singleton类实例?

时间:2011-05-30 14:15:03

标签: php

为了一个简单的例子,如果我想计算一个脚本在不使用磁盘存储的情况下获得的命中数,我可以使用静态类成员吗?

用户1:

<?php
$test = Example::singleton();
$test->visits++;
?>

用户2:

<?php
$test = Example::singleton();
$test->visits++;
?>

$visits的值是1还是2?

2 个答案:

答案 0 :(得分:8)

没有。每个请求都会产生一个新进程。他们之间没有任何生存。

您可以使用会话来保留状态,这些会话本质上是基于磁盘的序列化机制。他们自己的会话依靠cookie来识别请求之间的数据(但是它自己的数据存储在服务器上的文件中)。因此,它们是用户本地的,不适合您的需要。在PHP应用程序中存储这种数据的标准方法是在数据库中。

答案 1 :(得分:1)

在这两种情况下,

$visits都是1。

单身人士是按照请求而不是每台机器/主机。每个请求都有自己的实例。

如果没有某种磁盘存储/数据库,我认为你不能计算一页的点击次数。

相关问题