PHP5 call-by-reference
-
Hi,
ich möchte ein großes PHP4 Projekt auf PHP5 migrieren.
Ein Hauptproblem hierbei ist, dass bei PHP4 die Objekte by-value (also als Kopie) übergeben werden, bei PHP5 by-reference.Nun gibt es unzählig viele Funktionen, die die übergebenen Objekte verändern oder nicht.
Gibt es nun eine Möglichkeit das verhalten bei PHP5 so umzustellen, dass es sich wie bei PHP4 verhält?Oder alternativ: ist es möglich alle Funktionen ausfindig zu machen (nicht manuell), die tatsächlich das übergebene Objekt ändern?
-
Das in PHP5 Funktionen oder Methoden über call-by-reference aufgerufen werden, ist mir neu
Wie kommst du da drauf? Klar gibt es einige Befehle, die sich so verhalten, alle sind das aber nicht. Auch wäre mir nicht bekannt, dass sich in dieser Hinsicht in PHP5 viel verändert hat.
-
Woher hast du denn den Unsinn, dass PHP 5 nun "by reference" übergibt? Um dich noch abzusichern, dass im Normalfall immer noch "by value" übergeben wird, hier ein Zitat:
PHP supports passing arguments by value (the default), passing by reference, and default argument values.
http://www.php.net/manual/en/functions.arguments.php#functions.arguments.by-reference
Du findest auf der gleichen Seite im übrigen auch noch eine Anleitung für das Migrieren von PHP 4 zu 5 und worauf du achten musst:
http://www.php.net/manual/en/migration5.phpGrüssli
-