PHP“ foreach”实际上如何工作?
首先,我要说一下我知道它是什么foreach,做什么以及如何使用它。这个问题关系到它在引擎盖下的工作方式,我不希望出现“这就是如何用foreach” 循环数组”的答案。 很长时间以来,我一直认为该方法foreach可用于数组本身。然后,我发现许多关于它可以与数组副本一起使用的事实的引用,从那时起,我一直以为这是故事的结尾。但是我最近对此事进行了讨论,经过一番实验后发现这实际上并非100%正确。 让我表明我的意思。对于以下测试用例,我们将使用以下数组: $array = array(1, 2, 3, 4, 5); 测试用例1: foreach ($array as $item) { echo "$item\n"; $array[] = $item; } print_r($array); /* Output in loop: 1 2 3 4 5 $array after loop: 1 2 3 4 5 1 2 3 4 5 */ 这清楚地表明,我们不是直接使用源数组-否则循环将永远持续下去,因为我们在循环过程中不断将项目推入数组。但是只是为了确保是这种情况: 测试用例2: foreach …