0

PHP 有像 Java 一样的同步机制吗?在我的项目中,不同的用户可以继续进行相同的交易。

例如,我向不同的用户发送一封带有付款详情页面 URL 的邮件。这样他们就可以同时查看该页面。他们也可以继续进行相同的交易。当一个用户已经查看该页面时,我想为用户拒绝(显示消息)该页面。在java中,我们可以对对象使用同步。我如何在 php 或 zend 框架中做到这一点?

4

2 回答 2

3

PHP 不像 Java。

每个请求在具有单独变量的单独堆栈中运行。您只能使用memcache等扩展在 PHP 中共享对象。

我的建议是使用文件系统的锁定机制。例如:

<?php
$fp = fopen( $filename,"w"); // open it for WRITING ("w")
if (flock($fp, LOCK_EX)) {
    // do your stuf here
    flock($fp, LOCK_UN); // unlock the file
} else {
    // flock() returned false, no lock obtained
    print "Could not lock $filename!\n";
}
?> 
于 2012-02-08T10:35:03.810 回答
0

我很难理解你在这里想要实现的目标——无论是用 PHP 还是 Java。似乎您想将互斥锁应用于数据集-但这不是同步的副作用-不是目的。如果您使用会话 ID 和 FSM 来控制访问,则不需要。

于 2012-02-08T12:44:28.123 回答