推随机变量到数组PHP
问题描述:
- 我宣布一个名为$栈
- 数组我做一个if语句来检查,如果在我的HTML身体的按钮激活。
- 一旦被解雇,我尝试在我的$堆叠阵列推向一个随机值(通过mt_rand)。
- 我打印我的数组,看看里面有什么值。
其中y我试图增加的倍for循环将运行量,从而应该有更多的值可变推入阵列。但是,这并没有发生。他为什么不发生?我有这样的感觉,当我按下按钮时,页面被刷新,我的$ y变量再次为0。它是否正确?推随机变量到数组PHP
我希望你能帮助我。
<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>
答
看吧:
$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
答
首先你设置$y
到1
$y=0; $y++;
然后你循环0
和$y
之间:
for($x = 0; $x < $y; $x++){
所以0小于1,所以你的值添加到阵列。
然后1不小于1,所以你停下来。
在这一点上,你有数组中的一个值。
当你再次点击提交,程序从开始运行。它创建一个新的数组并在其中放入一个值。
如果你想坚持的表单提交之间的数据,那么你需要存储的结果某处持久(如会话,数据库或嵌入的形式隐藏输入元素)。
+0
这正是原因为什么它没有工作。我一直在努力解决这个问题,第二部分的答案也解决了我的第二个问题。我将查找如何在没有数据库的情况下保留数据(这里是初学者)。感谢您的精彩输入! –
为什么你不能设置'$ y = 1';而不是'$ y = 0; $ Y ++;'?如果$ y的值为1,那么显然只有一个值会被添加到数组中 – Manav
由于您已将'$ y'设置为'1'并且您从'0'循环,因此您的循环只能执行一次,到'$ y'。 – meagar
您的HTML无效。甲''
不能包含''