You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP猜数字游戏:如何存储历史猜测值到隐藏输入数组并全量展示

解决PHP猜数字游戏存储所有猜测值的问题

嘿,作为PHP新手能写出猜数字的雏形已经很棒啦!你现在遇到的问题核心是每次页面刷新/提交请求时,PHP都会重新初始化你的$allguesses数组,之前的猜测数据自然就丢失了,所以只能看到最后一次的。要解决这个问题,我们需要用PHP的会话(Session)来持久化存储这些猜测值,因为Session可以在多次请求之间保存用户的数据。

下面是修正后的完整代码,我会一步步解释关键改动:

<?php
// 第一步:启动会话,这行必须放在所有输出(包括HTML标签)之前
session_start();

// 第二步:初始化会话中的猜测数组,如果还不存在就创建空数组
if (!isset($_SESSION['allguesses'])) {
    $_SESSION['allguesses'] = [];
}

$target = 80;
$message = '';
$showGuesses = false;

// 处理用户的猜测提交
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['guess'])) {
    $userGuess = (int)$_POST['guess'];
    
    // 把当前猜测加入会话数组
    $_SESSION['allguesses'][] = $userGuess;
    
    if ($userGuess == $target) {
        $message = "恭喜你猜对了!目标数字就是80!";
        $showGuesses = true;
    } elseif ($userGuess < $target) {
        $message = "猜小啦,再试试更大的数字!";
    } else {
        $message = "猜大啦,再试试更小的数字!";
    }
}

// 如果猜对了,之后可以选择重置猜测记录(可选)
if (isset($_POST['reset'])) {
    $_SESSION['allguesses'] = [];
    $message = "游戏已重置,快来继续猜!";
    $showGuesses = false;
}
?>
<html>
<head>
    <title>猜数字游戏</title>
</head>
<body>
    <h1>猜数字游戏</h1>
    <p><?php echo $message; ?></p>
    
    <!-- 显示所有猜测值(猜对后触发) -->
    <?php if ($showGuesses): ?>
        <h3>你之前的所有猜测:</h3>
        <ul>
            <?php foreach ($_SESSION['allguesses'] as $guess): ?>
                <li><?php echo $guess; ?></li>
            <?php endforeach; ?>
        </ul>
        <form method="POST">
            <button type="submit" name="reset">再来一局</button>
        </form>
    <?php else: ?>
        <!-- 猜数字表单 -->
        <form method="POST">
            <label>输入你的猜测(1-100):</label>
            <input type="number" name="guess" min="1" max="100" required>
            <button type="submit">提交猜测</button>
        </form>
    <?php endif; ?>
</body>
</html>

关键改动说明:

  • session_start():必须放在PHP代码的最开头(任何HTML输出之前),它会开启或恢复当前用户的会话,让我们能在多次请求间保存数据。
  • $_SESSION['allguesses']:用会话数组代替原来的$allguesses,这样每次提交的猜测都会被追加进去,不会因为页面刷新而丢失。
  • 表单逻辑优化:添加了重置按钮,猜对后可以清空猜测记录重新开始;同时用条件判断控制表单和猜测记录的显示。

这样修改后,当你猜对数字时,页面就会展示你之前所有的猜测值啦!

内容的提问来源于stack exchange,提问作者Elif Sahin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:55:28