Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP网站上的口袋妖怪之战_Php_State - Fatal编程技术网

PHP网站上的口袋妖怪之战

PHP网站上的口袋妖怪之战,php,state,Php,State,我是一名C#web程序员,但我想用PHP创建一个pokemon battle网站,用户可以使用web套接字在线作战。如果你不熟悉口袋妖怪,想象一下它是一个在线玩家对弈网站;这差不多是一回事 我的问题是在哪里保存口袋妖怪(或国际象棋)的战斗状态/数据,如每个口袋妖怪的健康状况等(或使用国际象棋类比的国际象棋棋子的位置) 将数据保存在数据库中似乎效率很低,因为数据会随着人们的游戏而实时变化,而长期持久性并不重要;一旦战争结束,所有数据都将变得毫无用处。如果服务器宕机,数据丢失也没什么大不了的 如果我

我是一名C#web程序员,但我想用PHP创建一个pokemon battle网站,用户可以使用web套接字在线作战。如果你不熟悉口袋妖怪,想象一下它是一个在线玩家对弈网站;这差不多是一回事

我的问题是在哪里保存口袋妖怪(或国际象棋)的战斗状态/数据,如每个口袋妖怪的健康状况等(或使用国际象棋类比的国际象棋棋子的位置)

将数据保存在数据库中似乎效率很低,因为数据会随着人们的游戏而实时变化,而长期持久性并不重要;一旦战争结束,所有数据都将变得毫无用处。如果服务器宕机,数据丢失也没什么大不了的

如果我在C#中这样做,我只会将数据保存在静态类中(通过请求持久化,并保存在RAM中)


在PHP中,最好的方法是什么?

我建议使用memcached。不幸的是,PHP没有像ASP/ASP.NET这样的应用程序级变量,所以这是次好的选择。然而,它只比静态变量稍微困难一点


看看PHP文档,了解如何开始:

将其粘贴到数据库中的RAM表中?现在所有的普通人都支持这一点。MySQL(免费选项)可以很容易地做到这一点,你只需像引用表一样引用它。你必须将它们全部缓存。@Fluffeh:我可以,但数据存储在数据库中会有点不友好,它更容易适应普通变量,如果它可以保存在$variables中,并以某种方式通过requests持久化,那么对我来说工作就更少了。如果它是播放器还是计算机,那么PHP会话就应该可以了。如果是PVP,您需要一些东西将数据存储在服务器上,从文件到数据库再到memcache等等