Php 为什么num_trys计数器不工作?
嗨,我正在清理我的php基础知识,我有点被困在实现这个猜测游戏。我的问题是,我希望$num_尝试用作计数器,并且每当用户回答错误时,它每次都会增加1Php 为什么num_trys计数器不工作?,php,html,Php,Html,嗨,我正在清理我的php基础知识,我有点被困在实现这个猜测游戏。我的问题是,我希望$num_尝试用作计数器,并且每当用户回答错误时,它每次都会增加1 <?php $target=58; $message=""; $num_tries=0; if(isset($_POST["num_tries"])) { print "set"; ++$num_tries; } else { print "not set"; $num_tries=0; } if (!iss
<?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>
猜谜游戏
猜数:
您可以在第一行中解决它:
$target=58;
$message="";
$num_tries = (!empty($_POST['num_tries']) ? $_POST['num_tries'] : 0);
这意味着如果之前未提交表单,$num\u tries
将为零,否则,该值将是最后提交的值
然后需要在隐藏元素中打印
<INPUT type="hidden" name="num_tries" value="<?php echo $num_tries?>">
---------------------------------------------------^^^^
您可以在第一行中解决它:
$target=58;
$message="";
$num_tries = (!empty($_POST['num_tries']) ? $_POST['num_tries'] : 0);
这意味着如果之前未提交表单,$num\u tries
将为零,否则,该值将是最后提交的值
然后需要在隐藏元素中打印
<INPUT type="hidden" name="num_tries" value="<?php echo $num_tries?>">
---------------------------------------------------^^^^
将上述声明更改为$num\u tries=isset($\u POST[“num\u tries”])$_POST[“num_尝试”]:0代码>这意味着如果设置了后var值,则分配后var值,否则分配0
接下来需要做的修改是打印隐藏元素下的值。
您可以使用print
或print\r
或echo
<INPUT type="hidden" name="num_tries" value="<?php echo $num_tries; ?>">
将上述声明更改为$num\u tries=isset($\u POST[“num\u tries”])$_POST[“num_尝试”]:0代码>这意味着如果设置了后var值,则分配后var值,否则分配0
接下来需要做的修改是打印隐藏元素下的值。
您可以使用print
或print\r
或echo
<INPUT type="hidden" name="num_tries" value="<?php echo $num_tries; ?>">
您正在使用的
实际上什么都不做
您需要使用
(print
也可以,但对于您的用例,echo更有效),以便实际将值放入表单中
另外,$num\u trys=0代码>不会费心读取现有值。您可以使用$num\u trys=$\u POST['num\u trys']\1240
尽管未设置字段时会生成一个PHP通知,但如果您关心这一点,请将isset
与三元运算符或if/else一起使用。您正在使用的
实际上什么都不做
您需要使用
(print
也可以,但对于您的用例,echo更有效),以便实际将值放入表单中
另外,$num\u trys=0代码>不会费心读取现有值。您可以使用$num\u trys=$\u POST['num\u trys']\1240
虽然在未设置字段时它会生成一个PHP通知,但如果您关心这一点,请使用带有三元运算符或if/else的isset
。好的,您要做的第一件事是$num\u trys=0
。“我希望$num\u尝试用作计数器,并且每次增加1”--在每次脚本调用中,使用0
初始化它,然后+$num\u尝试在需要时增加它。它工作得很好。您可能希望在执行之间传递它的值(这就是为什么您在隐藏的输入中添加了它)。但在下一次执行时,您完全忽略该值。您应该执行if(isset($\u POST[“num\u tries”]){print“set”;$num\u tries=(int)$\u POST[“num\u tries”];++$num\u tries;}否则{…}
谢谢Axiac。。。。。我尝试了所有提到的解决方案,但只有你的有效。非常感谢。首先,您要做的是,$num\u tries=0
,“我希望$num\u尝试用作计数器,并且每次增加1”--在每次脚本调用时,您都使用0
初始化它,然后+$num\u tries
根据需要增加它。它工作得很好。您可能希望在执行之间传递它的值(这就是为什么您在隐藏的输入中添加了它)。但在下一次执行时,您完全忽略该值。您应该执行if(isset($\u POST[“num\u tries”]){print“set”;$num\u tries=(int)$\u POST[“num\u tries”];++$num\u tries;}否则{…}
谢谢Axiac。。。。。我尝试了所有提到的解决方案,但只有你的有效。谢谢。