如何在更改变量后保存变量的号码

时间:2018-05-31 12:54:01

标签: php

我尝试在更改后修改变量编号,这是我的代码:

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.

1 个答案:

答案 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;
}