Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么num_trys计数器不工作?_Php_Html - Fatal编程技术网

Php 为什么num_trys计数器不工作?

Php 为什么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基础知识,我有点被困在实现这个猜测游戏。我的问题是,我希望$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 (!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。。。。。我尝试了所有提到的解决方案,但只有你的有效。谢谢。