<?php
$numbers = ['one', 'two', 'three'];
// Normal foreach loop, no reference used
foreach ($numbers as $number)
{
// Does not affect the original array, only modifies
// $number within the scope of the loop
$number = strtoupper($number);
}
// Will dump unmodified array: ['one', 'two', 'three']
var_dump($numbers);
// Foreach loop by reference
foreach ($numbers as &$number)
{
// $number is a reference so the corresponding
// value in $numbers is also updated
$number = strtoupper($number);
}
// Will dump: ['ONE', 'TWO', 'THREE']
var_dump($numbers);