PHP 猜号游戏

PHP Number Guessing Game

PHP代码问题。

我已经研究过堆栈交换,但我发现的大多数解决方案都与我正在做的事情有关。我可以准确地得到输出以显示 "guess is too high" 或 "guess is too low" 结果。但是,我遇到困难的地方在于尝试更新数字。

我的代码是这样设置的"I'm thinking of a number between lowerNumber and higherNumber."

我正在尝试获取适当的变量值,以便在每次进行猜测时进行更新。所以如果我的号码是 23 而有人猜 12,下次页面加载时它会是 "Too low! Number is between 12 and 100." 然后如果他们猜 30,这太高了,它会输出 "Too high! Number is between 12 and 30."

目前,如果我进行猜测,它会更新正确的值,但会将另一个更改为空白值。如果我设置:

$higher = 100;
$lower = 1;

在 $randomNum(当前声明的而不是随机的)下方,然后它将值更改回 1 或 100,同时更新另一个。

谁能解释一下我做错了什么? 我已经为此工作了八个小时,但仍然无法弄清楚我做错了什么....如果知道我需要做什么才能让它发挥作用,我将非常感激。

<?php

$randomNum = 23;


if(isset($_POST['myGuess'])) {
    $myGuess = $_POST['myGuess'];
    $higher = "";
    $lower = "";

    if($myGuess > $randomNum){
        echo "Too high!";
        $higher = $_POST['myGuess'];
        $lower = $_POST['lower'];
    } else if ($myGuess < $randomNum){
        echo "Too low!";
        $lower = $_POST['myGuess'];
        $higher = $_POST['higher'];
    } else if ($myGuess === $randomNum) {
        echo "Good job! That is my number!";
    } 
} else {
$lower = 1;
$higher = 100;
}

?>
<!DOCTYPE html>
<html>

<header>
<style>
#wrapper {
height: 450px; width: 550px; background-color: black; color: white;"
}
.box {
    background-color: gray;
    height: 400px;
    width: 500px;
    margin-top: 25px;
    margin-left: 25px;
    position: absolute;
}
p {
    margin-left: 25px;
    margin-top: 25px;
}
.inputs {
    margin-top: 15px;
    margin-left: 40px;
}
</style>
</header>

<body>
<div id="wrapper">
    <div class="box"><p>I am thinking of a number between 
    <?php echo $lower; 
    ?>
    and
    <?php echo $higher; 
    ?>
    .</p><br>
    <form action="1to100.php" method="POST">
        <input type="hidden" name="lower" value="<?php $lower ?>">
        <input type="hidden" name="higher" value="<?php $higher ?>">
        <input type="text" name="myGuess" class="inputs"><br>
        <input type="submit" class="inputs" value="GUESS!"><br>
    </form>
    </div>
</div>
</body>



</html>

这段代码存在三个错误:

<input type="hidden" name="lower" value="<?php $lower ?>">
<input type="hidden" name="higher" value-"<?php $higher ?>">

<?php $lower 应为 <?php echo $lower,同上 $higher。在第二个值属性之后有一个 - 而不是 =。正确的代码是:

<input type="hidden" name="lower" value="<?php echo $lower ?>">
<input type="hidden" name="higher" value="<?php echo $higher ?>">

你的问题出在这里:

 <input type="hidden" name="lower" value="<?php $lower ?>">
 <input type="hidden" name="higher" value-"<?php $higher ?>">

您没有打印出越来越低的变量。