为什么我不能在“foreach”循环中取消设置变量?

2024-01-07

为什么我不能取消设置 a 中的变量foreach loop?

<?php

$array = array(a,s,d,f,g,h,j,k,l);

foreach($array as $i => $a){
 unset($array[1]);
 echo $a . "\n";
}

print_r($array);

In the code http://codepad.org/rCeNevz5,该变量在范围内foreach循环,但在循环之外它未设置。是否可以在循环内取消设置?


您需要通过引用传递数组,如下所示:

foreach($array as $i => &$a){

注意添加的&。这在手册中也有说明foreach https://www.php.net/manual/en/control-structures.foreach.php:

为了能够在循环内直接修改数组元素 在 $value 之前加上 &。在这种情况下,该值将由以下方式分配 参考。

现在这个produces http://codepad.org/ve3yawZe:

a
d
f
g
h
j
k
l
Array
(
    [0] => a
    [2] => d
    [3] => f
    [4] => g
    [5] => h
    [6] => j
    [7] => k
    [8] => l
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我不能在“foreach”循环中取消设置变量? 的相关文章

随机推荐