为了一个简单的例子,如果我想在不使用磁盘存储的情况下计算脚本的点击次数,我可以用静态类成员来完成吗?
用户1:
<?php
$test = Example::singleton();
$test->visits++;
?>
用户2:
<?php
$test = Example::singleton();
$test->visits++;
?>
$visits
的值是1还是2?
否。每个请求都会产生一个新的进程。他们之间什么都没有。
您可以使用会话来保留状态,会话本质上是一种基于磁盘的序列化机制。会话本身依赖cookie来识别请求之间的数据(但其自身的数据存储在服务器上的文件中)。因此,它们对于用户来说是本地的,不适合您的需求。在PHP应用程序中存储此类数据的标准方式是在数据库中。
$visits
在这两种情况下都将为1。
单点是针对每个请求,而不是针对每台机器/主机。每个请求都有自己的实例。
我认为如果没有某种磁盘存储/数据库,你无法计算一页的点击次数。