gpt4 book ai didi

php - 如何让 php 脚本等待用户输入

转载 作者:搜寻专家 更新时间:2023-10-31 20:46:44 25 4
gpt4 key购买 nike

这是我的问题,对于那些看了标题并认为“PHP 不等待用户输入,因为它是服务器端语言,因此您的问题是客户端语言”的人,请听我说完.

我正在制作游戏。这是多人游戏,因此有多个用户。在每一轮游戏开始时,系统都会提示参与游戏的用户选择他们想在该轮做的事情。当然,在每个人都选择了他们想在这一轮中做什么之前,这一轮不会开始。

看,这是我的问题。如何让脚本在继续执行之前等待“所有”用户发送请求(发送输入)?服务器端语言是PHP。答案不会是客户端,因为客户端只对一个用户负责,不知道其他用户在做什么。

谢谢。

最佳答案

基本上,您有两个选择:

选择一个,你让每个脚本检查它是否有它需要的所有数据,然后做所有的工作来计算下一步(或其他)。这实际上比听起来要难得多,因为您会遇到并发问题。

基本上,这种方法会导致不止一个“过程”——页面加载——试图对相同的数据做同样的工作,这为你要么根本不做工作,要么你在哪里做了两次。

选择二,听起来更难,是您编写另一个 PHP 脚本来检查它是否包含所有移动、计算结果并在后台更新数据库(或其他)。

然后,通过 cron 作业或类似的东西运行它,这样您一次只能运行一个实例。这让生活变得更轻松:你的“一切都完成了”脚本只运行一次,所以你不必担心比赛 - 但在提交最后一步和计算结果之间可能会有滞后。

从长远来看,这种方法实际上更容易,因为虽然它涉及更多的代码和更多的移动部分,但它实际上避免了困难的问题(并发)以换取一些更简单的问题(更多的代码,使用 cron) .

当然,您可以改进这两个模型,但这些是基本模型。锁定和其他协调技术可以使“在最后一页计算”更好地工作,但它们涉及到您解决比赛问题。

使用各种“后台作业”工具可以改善第二种方法的延迟,让您立即触发检查,而不仅仅是在计时器上。您仍然有一些延迟,但用户看不到那么多。

不过,实际上,您可以从这两种策略中选择一种并采用它。

(此外,我强烈建议,如果可以的话,捕获一个框架或其他人已经解决了这些问题的东西,然后使用它。)

关于php - 如何让 php 脚本等待用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com