| 

.NET C# Java Javascript Exception

1
Beim durchforsten von altem PHP-Code bin ich auf folgende Zeile gestoßen.
$c = &new MyClass();

Unter PHP5.3 bekomme ich folgende Fehlermeldung:
Assigning the return value of new by reference is deprecated

Kann mir einer sagen, was sich der Programmierer dabei gedacht hat? Hat das "&" bei "PHP kleiner 5.3" an Dieser Stellen einen Sinn gemacht?
11.09.2009
koalabruder 23 2
2 Antworten
4
Im PHP-Manual wird der Sinn dahinter recht schön erklärt. In PHP 4.x würde ohne Referenzoperator bei der Zuweisung eine Kopie der gerade erstellen Instanz erzeugt werden, was wohl in den seltensten Fällen erwünscht sein dürfte. Seit PHP 5 gibt new automatisch eine Referenz zurück. Die „Fehlermeldung“ ist im Übrigen nur eine Warnung – funktionieren tut der Code mit PHP 5 trotzdem noch wie erwartet.
11.09.2009
reima 324 2 2
0
Beispiel:
$a = new SomeClass();
$a->x = "1";
$b = $a;
$c = &$a;
$a->x = "2";
echo $a->x."/".$b->x."/".$c->x;
// In PHP 4 ergibt das: 2/1/2
// In PHP 5 ergibt das: 2/2/2
11.09.2009
DaSpors 4,1k 1 8

Stelle deine Php-Frage jetzt!