Jesuer
2015-08-25 12:08
这里不需要去定义一下“key”和“v”的变量,给他们赋值吗,直接就拿来用了?他怎么直到key是代表键,v
是代表值。我换成别的也可以,但为什么不需要去定义呢?
foreach 语法结构提供了遍历数组的简单方式。
$key与$v是形参,你可以理解成是未传值的变量,as是该语法结构形式规范符。就好像算术运算中用+号表示前后者之和。在foreach语法结构中 as 有解析前面数组单元传递值或键值给后面相应的一个或两个形参的意味,本质上是foreach语法结构的一部分。简单点相当于你学英文的语法。
foreach仅能够应用于数组和对象。有两种语法:
foreach (array_expression as $value){
statement; }
foreach (array_expression as $key => $value){ //数组元素的键->$key, 值->$value
statement; }
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,当前单元的键名会在每次循环中被赋给变量 $key,当前单元的值会在每次循环中赋给变量$value
原理:当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。
给你贴个w3shool上例子:
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
php的语法是这样的:
foreach (数组 as 下标 => 值)
$x相当于下标,$x_value相当于值,固定的语法,所以程序知道一个是键,一个是值
这个两个是变量,名字可以自己定义(符合规范)。
这是FOREACH 的语法,key 是数组索引,V 是该索引对应的值
PHP入门篇
455957 学习 · 6306 问题
相似问题