【发布时间】:2011-09-26 09:34:03
【问题描述】:
$test = array(1, 2, 3, 4, 5);
foreach($test as $element)
{
echo $element;
$element = next($test);
echo $element;
}
这会在 PHP 5.2.0 中产生输出“122334455” 输出“13243545”是在 PHP 5.3.3 中产生的
如何通过控制迭代器最有效地在 5.3.3 中重现 5.2.0 的输出?
这可能是一个错误,因为迭代器在 5.2 中的 foreach 中有效,但在 5.3 的 foreach 中无效。
【问题讨论】:
-
你想要哪个输出,“122334455”还是“13243545”?
-
我想要“122334455”。我需要一种方法来控制 foreach 中的迭代器。我曾经使用 next() 和 prev() 进行控制,但它的效果是暂时的,直到 5.3.3 循环中的下一次迭代。
-
你为什么要首先使用这种行为?你真的不应该改变迭代器 while 你循环它。
-
@RafeKettler 为什么不重要。我只是需要它。我知道我在问什么。这是非常具体的事情。我需要一种方法来控制 foreach 中的迭代器。
-
@FinalForm 如果有一种安全且便携的方式来做你想做的事,那么为什么很重要