請看看下面的例子:更改一個值影響另一個
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中有蟲洞!
有人能告訴我爲什麼會發生這種情況嗎?
謝謝
你是如何看到它丟失的? –
在我添加「備份和恢復」代碼之前,我回顯了之前顯示值和之後沒有值的內容。 – CompanyDroneFromSector7G
我看不到任何代碼顯示會破壞'$ a_Detail ['VEH_TREAD_OFF'];'。這是100%的問題嗎?你是不是在這個或某些東西的功能? (在PHP中,函數有自己的作用域) –