Objekte in einem Array mit PHP speichern

7

Ich habe eine Funktion, die Zeilen aus einer Datenbank abruft, die content- & gt; id und content- & gt; -Typen sind sie verwendet, um eine Methode in einem bereits geladenen Modell dynamisch aufzurufen, um die Objektdetails zu erhalten und zu formatieren. Sobald das Objekt zurückgegeben wurde, wird es zum Array hinzugefügt. Alles ist gut, außer dass, wenn ich komme, um das Array zu verwenden, obwohl es die richtige Anzahl von Elementen enthält, sie alle das gleiche Objekt enthalten, obwohl ich weiß, dass sie anders zurückgegeben werden. Ich bin bei einem vollständigen Verlust mit diesem, jede Hilfe / Ideen, die groß sein könnten!

Der Code ist unten:

%Vor%

Und die print_r-Anweisungen erzeugen dies:

%Vor%     
Paul Dixon 30.06.2009, 17:07
quelle

3 Antworten

13

Ich würde vermuten, dass das Problem darin besteht, dass Sie jedes Mal dasselbe Objekt über die Funktion get erreichen und dann durch Referenz zum Array hinzufügen Dies führt dazu, dass alle Elemente im Array geändert werden, wenn das Element in der get -Funktion geändert wird. Wenn dies der Fall ist, sollte Folgendes funktionieren:

%Vor%     
Mikael Auno 30.06.2009, 17:17
quelle
4

Wenn Sie $ item auf $ items schieben, wird der Wert $ item points nicht auf die Referenz, sondern auf die Referenz selbst verschoben. Sie müssen $ item jedes Mal initialisieren:

%Vor%     
MoshiBin 30.06.2009 17:18
quelle
3

Sie geben wahrscheinlich Verweise auf den Artikel zurück, nicht die Artikel selbst. Es wird immer die letzte Referenz sein, auf die $ item verweist.

    
cgp 30.06.2009 17:15
quelle

Tags und Links