Thursday 25 October 2007

Referenties

Referenties binnen PHP zijn ongeveer, maar niet precies hetzelfde als pointers binnen een taal zoals C. Een referentie is eigenlijk een verwijzing naar een variabele. Als de verwijzing veranderd, veranderd de variabele mee.
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?