<?php
echo "Hello world!<br />";
$persons = array(100,100,120,130);
while($element = each($persons))
{
echo $element['key'];
echo '-----';
echo $element['value'];
echo '<br />';
}
foreach($persons as $key => $value)
{
echo $key."-".$value."<br />";
}
?>
代码运行结果:
Hello world!
0-----100
1-----100
2-----120
3-----130
0-100
1-100
2-120
3-130
但如果把foreach和while语句的顺序替换后,
<?php
echo "Hello world!<br />";
$persons = array(100,100,120,130);
foreach($persons as $key => $value)
{
echo $key."-".$value."<br />";
}
while($element = each($persons)){
echo $element['key'];
echo '-----';
echo $element['value'];
echo '<br />';
}?>
代码运行结果是:
Hello world!
0-100
1-100
2-120
3-130
从输出结果看,好像while语句没有执行,为什么呢?求大神指教。
在 while前加了 reset($persons);,两次代码输出结果一致了。
是不是因为foreach执行后,指针越界,所以while没有输出数据?
PHP不会自己提示数组越界吗?
子衿沉夜
临摹微笑