变量总是重置

时间:2012-10-01 16:43:57

标签: php html

我正在使用表单创建像mastermind这样的游戏。我的问题是我有一个变量$尝试,并且我希望它在每次用户猜到一个数字时增加,但它似乎总是重置为零所以我的尝试次数总是显示为1.如果它有帮助这里是我正在使用的代码:

$black = 0;
$white = 0;
$answer = array(1,2,3,4);
$tries = array();
$attempts = 0;
if ($process == true)
{
$guess = str_split($_POST['guess']);
if ($guess == $answer)
{
    $black = 4;
} else
{
    for ($i=0;$i<4;$i++)
    {
        if ($guess[$i] == $answer[$i])
        {
            $black = $black + 1;
            $white = $white - 1;
        }
    }
    $result = array();
    foreach ($guess as $val)
    {
        if (($key = array_search($val, $answer))!==false)
        {
            $result[] = $val;
            unset($answer[$key]);
        }
    }
    $count = count($result);
    $white = $white + $count;
}
}
$chance = implode(" ",$guess);
$attempts += 1;
$try = $attempts.".".$chance.".".$white.".".$black;
array_push($tries, $try);

2 个答案:

答案 0 :(得分:1)

您是否在每次猜测时都提交表格?如果需要,您需要设置一个会话变量,如:

$_SESSION['attempts'] += 1;

只是为了澄清它似乎你缺少的东西。 php脚本是在服务器上运行的代码,生成要发送给客户端的文档(通常是html)。因此,它不是非常互动的请求。如果您希望在客户端运行代码,则需要使用Javascript。 Javascript具有不需要在客户端和服务器之间传递互联网信息的好处。

答案 1 :(得分:0)

$attempts总是等于1,因为它不在循环中,它在结尾声明,你只是在它的现有值(0)中加一。你需要将它放在适当的位置(我想到的最后一个{之上),它应该有用。

此外,您似乎使用了不同的方法来添加一个,例如$black + 1$attempts += 1;。使用$ variable ++,它更容易理解并阻止由此产生的任何错误。