【发布时间】:2015-05-08 19:02:37
【问题描述】:
我创建了一个实现 Iterator 接口的 php 类。我可以像这样成功地遍历类:
foreach($data as $key=>$value)
echo $key;
然而,这总是给我一个奇怪的结果:
foreach($data as $item)
echo key($item)
第一个样式在我的类中为每个元素调用 key() 方法。后者从不调用它。
我错过了什么吗?这应该行得通,不是吗?
更新:我想我错过了一些东西。 key 函数也不能像我期望的那样对一个简单的数组起作用:
$test = [['name'=>'foo'],['name'=>'bar'],['name'=>'fizz']];
foreach($test as $key=>$item)
echo $key;
foreach ($test as $item)
echo key($item);
给了我 012namenamename... 不是我所期待的。我想我只需要使用 $key=>value 表示法,并且永远不要指望 key() 在循环中。
【问题讨论】: