Coding Standards: Was beudeutet =&

Paula

Erfahrenes Mitglied
Hallo zusammen,

ich möchte gerne meinen Code nach dem PEAR Coding Standards richten. Bei der Klase MDB2 erscheint öfters folgender Code:
PHP:
$res =& $mdb2->query('SELECT * FROM mytable');

Was beudetet dieses =&?
 
Wenn ich es richtig verstanden habe, dann wird hier eine Referenz gebildet.

"$res" zeigt als nur auf "$mdb2->query('SELECT * FROM mytable');".

:confused:
 
Damit wird eine Variable referenziert.

Hier mal am Beispiel einer Funktion:
PHP:
function lala(&$bla)
{
 $bla++;
}

$x=5;
echo $x.'<br>';
lala($x);
echo $x.'<br>';

Normalerweise erhaelt man ja aus einer Funktion einen Rueckgabewert, manchmal kann es aber sinnvoll sein einen der Eingabewerte direkt zu manipulieren. Das ist hier der Fall indem nicht eine neue Variable im Speicher angelegt wird, sondern nur eine weitere Referenz auf eine bestehende Variable.
Dadurch wird auch die urspruengliche Variable geaendert wenn die Variable in der Funktion geaendert wird, und umgekehrt (wenn man das auf Variablen ausserhalb von Funktionen erweitert).
 
Okay, jetzt kann ich damit etwas anfangen.

Danke euch.

Hätte ich mal früher besser in C aufgepasst, hätte ich selber drauf kommen können. :)
 
Zurück