<?php
$arr = ['a', 'b', 'c', 'd'];
//引用下標 2
$v = & $arr[2];
echo "<pre>";
// 引用變數$v 與 foreach中的賦值變數$v相同
foreach ($arr as $v)
{
echo '當前$v=' . $v . "\n";
print_r($arr);
echo "\n";
}
憑直覺想一下,$v會輸出什麼?abcd?是不是不會這麼簡單?
輸出結果
當前$v=a
Array
(
[0] => a
[1] => b
[2] => a //注意此處,此時由於$v與$arr[2]為引用關係,當$v值發生變化後,$arr[2]同樣發生變化
[3] => d
)
當前$v=b
Array
(
[0] => a
[1] => b
[2] => b //同理
[3] => d
)
當前$v=b
Array
(
[0] => a
[1] => b
[2] => b //同理
[3] => d
)
當前$v=d
Array
(
[0] => a
[1] => b
[2] => d //同理
[3] => d
)
- 引用時,多個變數共享一個記憶體地址,任意變數名值的變更,都會影響擁有同樣引用關係的變數。
本作品採用《CC 協議》,轉載必須註明作者和本文連結