Hallo Zusammen,
soweit ich weiß, wird seit PHP5 immer eine Reference anstatt einer Kopie übergeben, wenn man Variablen an eine Funktion übergibt. Kann man das im Einzelfall auch unterbinden?
Mein Problem sieht (etwas vereinfacht) wie folgt aus:
Ein Object wird an eine Datenbankzugriffsklasse übergeben. Dort werden einige Werte des Objects umformatiert, bevor die Daten in die DB gespeichert werden. Das sieht u.a. so aus:
D.h. ich schreibe die Änderungen direkt in das Object zurück. Wenn ich nun aber nach dem Speichern das Object (außerhalb der Datenbankzugriffsklasse) in meinem Code weiter verwende, haben sich auch hier die Werte geändert.
Ich vermute, dass liegt daran das eine Reference statt einer Kopie des Objects übergeben wird. Gibt es eine Möglichkeit das gezielt zu unterbinden und eine Kopie zu erzwingen?
Hat jemand einen Vorschlag?
cu cyro
soweit ich weiß, wird seit PHP5 immer eine Reference anstatt einer Kopie übergeben, wenn man Variablen an eine Funktion übergibt. Kann man das im Einzelfall auch unterbinden?
Mein Problem sieht (etwas vereinfacht) wie folgt aus:
Ein Object wird an eine Datenbankzugriffsklasse übergeben. Dort werden einige Werte des Objects umformatiert, bevor die Daten in die DB gespeichert werden. Das sieht u.a. so aus:
PHP-Code:
$obj->value = $this->formatValue($obj->value);
Ich vermute, dass liegt daran das eine Reference statt einer Kopie des Objects übergeben wird. Gibt es eine Möglichkeit das gezielt zu unterbinden und eine Kopie zu erzwingen?
Hat jemand einen Vorschlag?
cu cyro
Kommentar