0

我发现这有点难以解释,所以如果有任何不清楚的部分,请告诉我。

我正在制作一个单人网络角色扮演游戏。

我有几个文件:

characters.php:这个包含character类,以及它的方法(levelUp()例如)

create1.php:这是用户选择角色属性的页面,然后创建角色。它包括这部分:

    require 'characters.php';
    $player = new Character($race);
    $player->levelUp();

这里发生了什么:用户被带到create1.php并进入他们的比赛,并随着用户的输入character创建一个新的。

现在我们有了$player包含所有字符信息的变量,它存储在create1.php文件中。

我打算require characters.php在网页游戏的每一页中。这意味着我必须$player导入characters.php. 换句话说,我必须$player进入一个将出现在所有游戏页面中的页面,因为它包含用户的角色数据。

如何在创建 in 的新实例的情况下character实现这一点characters.php,但是 in create1.php

4

2 回答 2

2

STT LCU就在这一点上。您尝试做的典型解决方案是使用数据库。查看在您的机器上运行AMP堆栈并使用 SQL 数据库来存储您的数据。根据需要通过SELECT查询从每个页面上的数据库中提取数据。

或者,假设一次只有一个用户和一个字符访问它,您可以将字符数据保存到文本文件中,然后打开文本文件并将其读回到character每个 PHP 文件中的对象中。对于您正在尝试做的事情,这可能有更少的学习曲线。

编辑PHP 会话可以使用,但会在浏览器关闭或默认时间 24 分钟后过期(其中包含数据)(我相信。)

于 2013-05-14T10:18:30.473 回答
1

您可以使用数据库(如评论中建议的 STT LCU)或$_SESSION惰性初始化

characters.php中

session_start();
function getCharacter() {
  if(!isset($_SESSION["player"])) $_SESSION["player"] = new Character(...);
  return $_SESSION["player"];
}

其他文件中

require 'characters.php';
$player = getCharacter(); // create instance or get existing one if exists
于 2013-05-14T10:18:27.850 回答