首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改一个值会影响另一个值

更改一个值会影响另一个值
EN

Stack Overflow用户
提问于 2012-06-01 20:16:11
回答 2查看 68关注 0票数 0

请看一下以下内容:

代码语言:javascript
复制
foreach($a_Header['Details'] as $i_Detail => &$a_Detail)
    {
    echo "{$a_Detail['VEH_TREAD_OFF']}\n";

    // Make a back-up of the value
    $BAK_TREAD_OFF = $a_Detail['VEH_TREAD_OFF'];

    // Copy some data from the saved header
    foreach(array
        (
        'POD_QTYORD',
        'VEH_TREAD_OFF',
        'RPM_SCRM_FIXEDPRICE',
        'RPM_TRM_FIXEDPRICE',
        'RPM_TRM_COSTPERMM',
        'RPM_CTS_CASINGCOST',
        'CHARGE_DESC',
        'Hide',
        ) as $s_Column)
        {
        $a_Header['Details'][$i_Detail][$s_Column] = $a_SavedHeader['Details'][$i_Detail][$s_Column];
        }

    echo "{$a_Detail['VEH_TREAD_OFF']}\n";

    // Now restore our value
    $a_Detail['VEH_TREAD_OFF'] = $BAK_TREAD_OFF;
    }

您可以看到,在进入for循环之前,我已经备份了一个值,然后恢复该值。

这是因为由于某种原因,它在循环过程中丢失了。

我不是一个PHP专家,但这让我困惑不已,因为我不明白为什么修改一个变量会影响另一个变量,除非PHP中有虫洞!

有人能告诉我为什么会发生这种事吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-01 20:41:40

代码语言:javascript
复制
$i_Detail => &$a_Detail

现在$a_Detail是对$a_Header['Details'][$i_Detail]的引用。这两个变量都引用单个值。如果您不想使用&,请不要使用它。

票数 1
EN

Stack Overflow用户

发布于 2012-06-01 20:37:34

您的代码示例根本不会影响$a_detail。您确定这是对此变量的唯一引用吗?您是否使用了诸如extract()之类的东西?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10850078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档