可以通過在$value 前添加&來修改數組的元素。此方法將以引用賦值而不是拷貝一個值。
正常情況下在循環體外打印$arr是跟循環前一樣的。
當使用了 & 引用後,在循環體中只是對$v進行了操作和賦值時。foreach的引用循環,每次循環都會讓$arr的元素指向$v,所以$v和$arr的元素指向同一個地方,所以在循環體外打印$arr時發現也隨着$v的變化而發生了變化。
分析:
1:foreach 是個循環賦值操作
2:&: PHP 的引用允許你用兩個變量來指向同一個內容
$a =&$b :$a 和 $b 在這裏是完全相同的,這並不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一個地方。
補充:foreach循環總共三種形式:
foreach ($arr as $value){
//執行代碼
}
foreach ($arr as $key=>$value){
//執行代碼
}
foreach ($arr as &$value){
//執行代碼
}