2010-11-15 70 views
1

我是java和php程序员。 在Java中,我可以使用静态类/方法,以便任何人都可以在运行时使用相同的一次创建的类。如何在php中应用静态类

但对于PHP如何做到这一点,因为它是基于脚本,只能在刷新页面时运行?

我的主要目标是,我想用syncronized类/方法,使其在执行PHP不会发生冲突......

需要你的帮助给输入。 感谢

更新:

  1. 我做喜欢的多层次营销(MLM)的门户
  2. 一旦注册一个会员,我们要奖励给上线
  3. 我不想因为它有风险并且可能需要一些时间来完成,所以不加区分地计算奖金,所以最好只注册该成员并显示成功。
  4. 我的想法是,在注册后,只需调用另一个班级以syncronized方法运行奖金,以便奖金计算不会受到另一个注册的干扰。

回答

2

鉴于一个PHP脚本从新的每一个单独的时间运行,“静态”类将不会与普通类差别很大。

如果你想存储某种状态或保存一些php程序运行之间的数据,那么有很多选择。

只要SESSION变量保持会话打开,SESSION变量就可以用来在来自单个用户的请求之间存储数据。

只要用户在同一台​​机器上使用相同的浏览器并且未清空cookie罐,COOKIES就可用于存储会话之间持续存在的数据。

memchached和类似的软件包可用于存储数据并使其可用于服务器上的任何php程序。

数据库是最具可扩展性的解决方案,因为它们将在会话之间以及服务器之间持续保存数据。与其他解决方案相比,涉及的一些开销是建立连接并检索数据。

+1

这是一个很好的评论...我应该选择数据库选项并且每5分钟运行一次cron-job – 2010-11-15 10:11:33

2

PHP是无共享的。一切都是为了请求而生活的。如果你想在请求之间共享信息,你必须实现someadditionaltechnologylayer可以这样做。或者查看process control,shared memory segmentssemaphores。后三者在PHP中是罕见的用法。以上所有内容仍将是异步的。

据我所知,没有办法在一个请求中更新Foo类,并立即在PHP的并发请求中更改状态。

+1

或更好的是,不要使用它。这只是为求解并发问题,并且很难向多个服务器扩展。 – gustafc 2010-11-15 09:39:35

+0

所以..如果我们不能使用php代码同步,我打算使用文本文件。将进程放入文件并通过cron-job运行。但text.txt文件编写器脚本(PHP)仍然没有syncronized ...任何人都可以使用简单的方式,因为我使用共享主机...不能在服务器中安装太多。 – 2010-11-15 09:46:37

+0

@Joe如果你更新你的问题并提供关于你真正想要做什么的更多细节,我们可能会更好地帮助你。 – Gordon 2010-11-15 09:48:48