我尝试在更改后修改变量编号,这是我的代码:
while($user_choice = fgets(STDIN)) {
$nbrMatches = -15;
$one = -1;
$two = -2;
$three = -3;
if ($user_choice == 1) {
echo $one - $nbrMatches . PHP_EOL;
echo $nbrMatches . " remaining." . PHP_EOL;
}
else if ($user_choice == 2) {
echo $two - $nbrMatches . PHP_EOL;
echo $nbrMatches . " remaining." . PHP_EOL;
}
else if ($user_choice == 3) {
echo $three - $nbrMatches . PHP_EOL;
echo $nbrMatches . " remaining." . PHP_EOL;
}
}
上面的代码,没有保存变量的数字,它只输出数学。我想保存它每次$ user_choice减去一个数字,它显示如下:
Margaret@PC $ 1
1
14 remaining.
Margaret@PC $ 3
3
11 remaining.
它显示了这个:
Margaret@PC $ 1
1
14 remaining.
Margaret@PC $ 3
3
12 remaining.
答案 0 :(得分:2)
我假设当你说" save"时,你只是意味着在循环的持续时间内持续存在。您当前的问题是,您在每个循环开始时将15
重新分配给$nbrMatches
变量,每次都会有效地重置它。
这里的解决方案是在$nbrMatches
循环之前定义while
,然后在每次选择时更新它。
这样的事情:
$nbrMatches = 15;
while($user_choice = fgets(STDIN)) {
$one = 1;
$two = 2;
$three = 3;
if ($user_choice == 1) {
$nbrMatches -= $one;
echo $one . PHP_EOL;
echo $nbrMatches . " remaining." . PHP_EOL;
}
else if ($user_choice == 2) {
$nbrMatches -= $two;
echo $two . PHP_EOL;
echo $nbrMatches . " remaining." . PHP_EOL;
}
else if ($user_choice == 3) {
$nbrMatches -= $three;
echo $three . PHP_EOL;
echo $nbrMatches . " remaining." . PHP_EOL;
}
}
当然,您可以直接使用用户输入,而不是拥有所有这些变量。例如:
$nbrMatches = 15;
while($user_choice = fgets(STDIN)) {
$nbrMatches -= $user_choice;
echo $user_choice . PHP_EOL;
echo $nbrMatches . " remaining." . PHP_EOL;
}