嗨我清除我的基本知識的PHP,我有點卡住實施這個猜謎遊戲。我的問題是,我希望$ num_tries作爲計數器工作,並且每當用戶錯誤地回答時,它每次都會增加1。爲什麼num_tries計數器不工作?
<?php
$target=58;
$message="";
$num_tries=0;
if(isset($_POST["num_tries"])) {
print "set";
++$num_tries;
} else {
print "not set";
$num_tries=0;
}
if (!isset($_POST["guess"])) {
$message="Welcome to the game of Guess!!!!!!";
} elseif($_POST["guess"]> $target) {
$message= "Try a smaller Number";
} elseif($_POST["guess"] < $target) {
$message= "Try a larger Number";
} else {
$message= "congrats....You got it.";
}
?>
<HTML>
<HEAD><TITLE>Guess Game</TITLE>
</HEAD>
<BODY>
<H1><?php print $message ?></H1>
Guess Number:<?php print $num_tries ?>
<FORM action="<?php print $_SERVER['PHP_SELF'];?>" method="POST">
<INPUT type="text" name="guess">
<INPUT type="hidden" name="num_tries" value="<?php $num_tries?>">
</FORM>
</BODY>
</HTML>
嗯,你做的第一件事是'$ num_tries = 0' ... –
*「我希望$ num_tries作爲一個計數器,並且每次增加1」* - 在每個腳本調用初始化它'0',那麼'++ $ num_tries'會根據需要增加它。它完美的作品。 – axiac
你可能想要的是在執行之間傳遞它的值(這就是爲什麼你在一個隱藏的'input'中添加它的原因)。但在下一次執行中,您完全忽略了該值。你應該做'if(isset($ _ POST [「num_tries」])){print「set」; $ num_tries =(int)$ _ POST ['num_tries']; ++ $ num_tries; } else {...}' – axiac