PHP数字猜测游戏

时间:2015-09-02 17:43:15

标签: php variables formatting format

PHP代码问题。

我已经挖掘了堆栈交换,但我找到的大多数解决方案都与我工作的东西有关。我可以准确地得到输出显示“猜测太高”或“猜测太低”的结果。但是,我遇到的问题是试图让数字更新。

我的代码以这种方式设置“我正在考虑lowerNumber和higherNumber之间的数字。”

我正在尝试获取适当的变量值,以便在每次猜测时更新。因此,如果我的数字是23并且有人猜测12,那么下一次加载页面时,它将是“太低了!数字介于12和100之间”。然后,如果他们猜测30,这太高,它会输出“太高!数字在12到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>

2 个答案:

答案 0 :(得分:2)

此代码有三个错误:

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

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

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

答案 1 :(得分:1)

你的问题在于:

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

您不会将变量打印得越来越低。