Diese Zuweisung (Edit: Diese hier meine ich: "$xyz = new &class();") macht doch irgendwie auch keinen Sinn oder?
Ich dachte dass man damit so ne Art Referenz machen kann...
also z.B.
PHP:
function ChangeSomething($a, $b)
{
$temp = $a;
$a = $b;
$b = $temp;
}
$x = 1;
$y = 2;
ChangeSomething($x, $y);
echo "$x $y"; // sollte eigentlich "1 2" ausgeben
ChangeSomething(&$x, &$y);
echo "$x $y"; // sollte nun "2 1" ausgeben
Kann natürlich sein, dass selbst der erste Befehl die Parameter tauscht, aber "&" wird wie gesagt nach meinem Kenntnisstand für direkte Referenzen verwendet, wenn keine Kopie eines Objekts oder so erstellt werden soll... leider hab ich das Gefühl dass PHP in der Hinsicht eh etwas unsauber implementiert ist und das Verhalten von PHP4 und 5 hier auch grundverschieden ist ...
(kann natürlich auch sein dass ich etwas viel Unsinn rede, bis morgen wird das eh bestimmt widerlegt ... is ja schon spät ^^)
Edit:
Wichtig ist das ganze halt in der OOP, wenn sichergegangen werden muss, dass an verschiedenen Stellen auf die selbe Instanz einer Klasse zugegriffen wird... Also als Beispiel...
Es gibt eine Datenbank-Klasse und verschiedene andere Klassen nutzen die selbe Instanz des Objekts.
Damit nun alle wirklich das selbe Objekt nehmen und keine Kopie des Objekts erstellt wird beim Aufruf des Constructors
PHP:
$forum = new Forum(&$datenbank); // hier könnte $datenbank kopiert werden (PHP4), deshalb zur Sicherheit den Paramater via Referenz erzwingen
// bei PHP5 wird das Objekt $datenbank automatisch als Referenz übergeben
Googlen vielleicht mal nach "Parameter als referenz übergeben PHP"
Treffer z.B:
http://www.usegroup.de/software/phptutorial/referenzen.html
also so falsch lag ich gar net mal...
Edit2: Tatsächlich werden bei PHP4 grausamerweise Objekte gerne als Kopie an Funktionen übergeben und nicht als Referenz... grausam, Gott sei Dank wurde das geändert...