In PHP4 moet je expliciet aangeven dat je een referentie wilt gebruiken, in PHP5 worden objecten altijd als referentie gebruikt. Met referenties kunnen ook onverwachte dingen gebeuren, die in eerste instantie een bug lijken.
Ook in een foreach lus kan je nu een referentie gebruiken naar de waarden in de originele array zonder dat je dus met een kopie van die array werkt. Dit kan soms echter voor verassingen zorgen. Zo levert onderstaande code een array op met de waarden: een, twee, twee en niet meer een, twee, drie zoals je zou verwachten.
<?php
$a = array('een', 'twee', 'drie');
foreach ($a as &$v) {
}
foreach ($a as $v) {
}
print_r($a);
?>
Weet jij waarom?