dedlfix: Tipps für die Verwendung von Array oder Objekt

Beitrag lesen

Tach!

Nun, die Verwendung ob Array oder Objekt ergibt sich ja eben daraus, also aus dem Unterschied ob Daten referenziert oder kopiert werden.

Ob die Übergabe einer Variable per Referenz oder Kopie erfolgt, ist kein geeignetes Entscheidungsmerkmal, ob Arrays oder Objekte eingesetzt werden sollten. Bei beiden gibt es Möglichkeiten das jeweils andere als das Default-Verhalten zu erzwingen. Außerdem arbeitet PHP mit Copy-on-Write, so dass es intern Referenzen verwendet, solange die Daten nicht geändert werden. Somit ist Kopie vs. Referenz noch weniger ein geeignetes Unterscheidungsmerkmal.

Schaut man zudem auf andere Sprachen, wie C# oder C++, dann gibt es dort neben class auch struct. Structs sind sozusagen Klassen, die als Kopie übergeben werden. Bei der Entscheidung, ob eine Klasse, ein Struct, ein Array, eine List, eine Map oder ein Dictionary verwendet werden, spielt das Default-Verhalten bei Zuweisungen keine Rolle. Das kommt lediglich bei der Entscheidung zwischen Class und Struct zum tragen.

Wahrscheinlich ist das einem PHP Programmierer gar nicht klar,

Weniger Arroganz wäre angebracht.

Und somit nicht eine Kopie der Daten übergeben wird sondern nur eine Referenz, womit die Daten nicht doppelt und dreifach im Hauptspeicher gehalten werden müssen.

Dafür gibt es das interne Copy-on-Write-Prinzip bei PHP.

dedlfix.