Forum und email

What References niet zijn

Zoals eerder gezegd zijn references geen pointers. Dat betekend dat de volgende constructie niet doet wat je zou verwachten:

function foo (&$var) {
    $var =& $GLOBALS["bazar"];
}
foo($bar);

Hier wordt $var in foo gebonden aan $bar in de aanroep, maar wordt dan herbonden met $GLOBALS["baz"]. Er is geen enkele manier om $bar in de aanroep te binden aan iets anders met het references mechanisme, omdat $bar niet beschikbaar is in de functie foo (het wordt gerepresenteerd door $var, maar $var heeft alleen maar variabele inhoud en geen naam-naar-value binding in de symbol table van de aanroepende functie).