【问题标题】:Why does For work, but ForEach does not in PHP? [duplicate]为什么 For 可以工作,而 ForEach 在 PHP 中却不行? [复制]
【发布时间】:2021-10-04 21:40:33
【问题描述】:

我们有一个数字字符串数组

$a = ["1", "2", "3"];

foreach 循环不改变类型,结果:[0]=>string(1) "1"

foreach ($a as $v) $v = (int) $v;

for 循环从字符串生成整数,结果:[0]=>int(1)

for ($i = 0; $i < count($a); $i++) $a[$i] = (int) $a[$i]; 

请解释一下这是为什么?

【问题讨论】:

    标签: php loops for-loop foreach


    【解决方案1】:

    同样的原因

    $v = $a[0];
    $v = int($v);
    

    不会改变$a$v 是数组元素的副本,而不是对它的引用。

    您可以使用引用变量使其工作

    foreach ($a as &$v) {
        $v = (int)$v;
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2010-10-16
    相关资源
    最近更新 更多