无法理解FOREACH循环PHP中发生的事情

时间:2015-04-01 01:53:55

标签: php

所以我最近使用了一些代码,我想知道它是如何完全运行的,因为我不喜欢使用我不理解的东西以及我在哪里获得代码并没有显示它是如何工作的。它的作用是将所有选中的复选框附加到变量$ information。

这是我使用的代码,提交的表单和php脚本

<form name="checkboxform" action="" method="post">
 <input type="checkbox" name="ninjas[]" value="stuff">stuff<br>
 <input type="checkbox" name="ninjas[]" value="more stuff">more stuff<br>
<input type="submit" value="submit" name="submit">
</form>

所以当我点击提交时,此功能运行

//excuse the ninja naming part, needed to have a laugh cause this was so frustrating :)
function sneakyNinjas() {
$array = $_POST['ninjas'];
$information = "";
foreach ($array as $key => $value) {
    $information .= $value; 
}

所以我得到它循环遍历数组中的每个值,这就是为什么我这样命名它们。
$ keys =&gt; $ value 部分是我的意思不明白。

如何确定何时点击了复选框?
它是否使用与数组一起发送的布尔值?

任何理解这个过程的帮助都会非常感激或者链接所以我可以阅读它因为我到目前为止没有找到任何结果,并且无论如何都要纠正我说错的地方。

3 个答案:

答案 0 :(得分:2)

提交HTML表单时,仅提交已检查的复选框的值。未选中或禁用复选框将被省略,因此您的数组仅包含选中的值。

答案 1 :(得分:0)

$ _ POST是一个关联数组。它应该只给你一个关键是'ninjas'的价值。

答案 2 :(得分:0)

我相信在提交表单时只会传递选中的复选框。在循环中,$ key是传递的字段名称,$ value是其值(与HTML中的属性匹配)。未经检查的字段根本不应存在(如果我没记错的话)。