为什么 inBetween 函数应该使用之前的数字却使用当前的数字

问题描述 投票:0回答:1

程序的目标是创建 3 个随机生成的数字,然后如果按下交易按钮,这 3 个数字就会进入 inBetween 函数,然后应该回显然后创建新的随机数,但发生的情况是 inBetween 函数使用当前生成的数字而不是上一篇

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <?php
    session_start();

    function isBetween($num1, $num2, $num3)
    {
        $numbers = [$num1, $num2];

        if ($num3 > min($numbers) && $num3 < max($numbers)) {
            return $num3 . " Is Between " . min($numbers) . " and " . max($numbers) . "<br/>";
        } else {
            return $num3 . " Is Not Between " . min($numbers) . " and " . max($numbers) . "<br/>";
        }
    }

    $num1 = rand(0, 9);
    $num2 = rand(0, 9);
    $num3 = rand(0, 9);

    if (isset($_POST['btn1'])) {

        if ($_SESSION['round'] >= 10) {
            echo "Game Over";
            session_destroy();
            exit;
        }

        $choice = $_POST['btn1'];

        if ($choice == "deal") {
            echo isBetween($num1, $num2, $num3);
            echo "You Pressed Deal <br />";
        } else {
            echo "You Pressed No Deal <br />";
        }

        $_SESSION['round']++;
    } else {
        $_SESSION['round'] = 1;
    }

    echo $num1 . "<br />";
    echo $num2 . "<br />";
    echo $num3 . "<br />";
    ?>

    <form method='POST'>
        <button type="submit" class="btnDeal" name="btn1" value="deal">Deal</button>
        <button type="submit" class="btnNodeal" name="btn1" value="nodeal">No Deal</button>
        <p>Round <?php echo $_SESSION['round'] ?></p>
    </form>
</body>
</html>

不知道接下来要做什么

php html arrays function logic
1个回答
0
投票

每次加载页面时,PHP 都会按照编写的顺序遍历整个代码。它不会记住上次到达的位置,也不会跳转到特定部分。

这是您的意图描述:

  1. 如果按下交易按钮...
  2. ...这 3 个数字进入 inBetween 函数
  3. ...然后应该回显
  4. ...然后创建新的随机数

但这就是你的代码的作用:

  1. $num1 = rand(0, 9); ...
  2. if ($choice == "deal") { ...
  3. echo isBetween($num1, $num2, $num3);
  4. echo $num1 . "<br />"; ...

显然这些不匹配,您想要的列表的第 4 步已成为第 1 步。要移动它,您需要其他地方来获取

$num1
等 - 明显的地方与您已经获得数量的地方相同回合,会议。

所以我们可以稍微扩展一下轮廓:

  1. 如果按下交易按钮...
  2. ...从会话中检索之前的号码
  3. ...这 3 个数字进入 inBetween 函数
  4. ...然后应该回显
  5. ...然后创建新的随机数
  6. ...并将新数字存储在会话中
© www.soinside.com 2019 - 2024. All rights reserved.