首页 > 解决方案 > 在 for 循环中更改元素

问题描述

在这里,当我不使用unset()函数时print_r($color),它会输出YELLOW结果。我不明白为什么它只输出YELLOW

$colors = array('red', 'blue', 'green', 'yellow');
foreach ($colors as $color)  {
    $color = strtoupper($color);
}
unset($color);
print_r($colors); // outputs: Array ( [0] => RED [1] => BLUE [2] => GREEN [3] => YELLOW )

标签: php

解决方案


在 foreach 循环完成时,$color 包含最后一个元素 Array ,然后更改为大写,即它包含“YELLOW”。如果您使用 print_r 打印出它的内容,它将输出“YELLOW”,除非您已经取消设置它。

你想让我做什么?如果要将数组的每个元素更改为大写,则需要使用以下 foreach 循环:

    foreach ($colors as &$color)  {
        $color = strtoupper($color);
    }
    print_r($colors);

推荐阅读