【发布时间】:2012-05-05 04:27:46
【问题描述】:
$animals = array('cat', 'dog', 'horse', 'elephant');
foreach($animals as $animal)
{
var_dump($animal);
next($animals);
}
上面的代码输出:猫、狗、马、大象。我认为next 函数应该移动$animals 的内部指针,因此我应该得到这个输出:猫,马。
如何使 $animals 的内部指针向前(和向后)移动,使其在 foreach 中受到影响?
编辑 1:
来自手册:
As foreach 依赖于内部数组指针在 循环可能会导致意外行为。
不过,我认为这是我需要做的。
编辑 2:
根据“您的常识”的链接,我将对我的问题提供更详细的解释。这是一些伪代码:
array $foos;
start loop of $foos
- do thing #1
- do thing #2
- do thing #3
- keep doing thing #3 while the current value of $foos in the loop meets a certain criteria
loop
当执行返回到循环的开始时,它应该从#3 访问的最后一个数组继续。 请注意,数组是关联的,因此 for ($i = 0 ... 方法不起作用。
【问题讨论】:
-
这不是对现实生活任务的解释,而是同一个 xy 问题。为什么需要它?
-
在这个实现细节问题中可能隐藏了一个更简洁的设计
标签: php