将随机变量推送到数组PHP中

时间:2017-09-26 14:09:32

标签: php

  1. 我声明了一个名为$ stack的数组
  2. 我创建了一个if语句,用于检查我的html主体中的按钮是否被触发。
  3. 一旦被触发,我会尝试在$ stack数组中推送一个随机值(通过mt_rand)。
  4. 我打印我的数组,看看那里有什么值。
  5. 使用变量y我尝试增加for循环运行的次数,因此应该有更多值被推入数组。然而,这不会发生。为什么他不会发生?我感觉当按下按钮时,页面会刷新,我的$ y变量再次为0。这是对的吗?

    我希望你能帮助我。

    <html>
    <head>
    <?php
    
        $stack = array();
        if( isset($_POST['dobbelTrig'])){
            $y=0;
            $y++;
    
                for($x = 0; $x < $y; $x++){
                    $newvalue = mt_rand(1,6);
                    $stack[] = $newvalue;
                }
    
            print_r($stack);
        } 
    ?>
    </head>
    <body>
    
    <p>
        <form method="post" action="">
            <input type="submit" value="dobbelen" name="dobbelTrig">
        </form>
     </p>
    
    </body>
    </html>
    

2 个答案:

答案 0 :(得分:2)

首先,您将$y设置为1

$y=0;
$y++;

然后在0$y

之间循环播放
for($x = 0; $x < $y; $x++){

因此0小于1,因此您向数组添加一个值。

然后1不小于1,所以你停止。

此时,数组中有一个值。

再次单击“提交”时,程序将从头开始运行。它创建一个新数组并在其中放入一个值。

如果要在表单提交之间保留数据,则需要将结果存储在持久性的某个位置(例如在会话,数据库中或嵌入在表单中的隐藏输入元素中)。

答案 1 :(得分:1)

看这里:

$y=0; // Y is 0
$y++; // Y is now 1
for($x = 0; $x < $y; $x++){ //So X is zero, when $x++ it is no longer < $y