Problem PHP - Foreach

07/27/2014 23:09 FreewayC#1
Hi,

bin noch ein Newbie was PHP angeht und hab da mal eine Frage.

Ich möchte auf ein Array "topicList", welches sich in der Klasse "Topic" befindet, zugreifen. Der Inhalt dieses Array´s "topicList" beinhaltet mehrere Klassenobjekte der Klasse "Content". Nun wollte ich durch eine foreach Schleife auf die Variable "name", welche sich in der Klasse "Content" befindet, zugreifen und den Wert ausgeben.


So wird das Array initialisiert:

$this->topicList = array();

Klassenobjekt wird in Array reingeschrieben:

$eintrag = new Content($obj->Autor); // Im Konstruktor wird der Wert für "name" übergeben.

$this->topicList[] = $eintrag;


Jetzt möchte ich durch die Foreach Schleife auf die Variable "name" zugreifen
-> Natürlich ist die Foreach nicht vollständig, irgendwas muss ja die Variable konvertieren, aber wie?

$top = new Topic();
foreach ($top->topicList as $item) {
echo $x->name;
}

In C# sieht dass so aus:

Content con;
foreach(Object obj in topicList){
con = obj as Content;
Console.WriteLine(con.name);
}


freundliche Grüße
07/27/2014 23:19 snow#2
PHP:
Quote:
foreach ($array as $value)
C#:
Quote:
foreach (var value in array)
sollte so funktionieren. :)
07/27/2014 23:20 Razor'#3
Ansonsten könntest du mich in skpe adden mache dir das per teamviever :))
07/27/2014 23:41 FreewayC#4
Hi,

danke für die schnellen Antworten.

Quote:
Originally Posted by Razor' View Post
Ansonsten könntest du mich in skpe adden mache dir das per teamviever :))
Weiß ich sehr zu schätzen, aber muss ich leider ablehnen.


Bekomme immernoch den gleichen Fehler

-> Cannot redeclare class Content


So sieht das ganze aus
[Only registered and activated users can see links. Click Here To Register...]

freundliche Grüße
07/27/2014 23:55 flogi333#5
Ein solches Problem hatte ich auch schon zweimal.

Das erste mal habe ich eine "includeall.php" - Datei verwendet habe, wo ich alle Klassen mit require manuell eingebunden habe ( ist schon ein Weilchen her -.- ) . Jetzt habe ich in meiner unglaublichen Intelligenz diese Datei eingebunden, und zusätzlich noch einmal die Klasse, was zu einer doppelten Einbindung und dem Fehler führte.

Das zweite Mal habe ich eine frühe Version des PHP __autoinclude verwendet, eine Klasse eingebunden und dieselbe noch einmal händisch. War mehr ein Flüchtigkeitsfehler. Ich weiß nicht, ob das in den jeztigen Versionen von autoload noch vorhanden ist.

tl;dr
Schau einfach, ob du eine Klasse irgendwann händisch einbindest, die schon durch einen autoloader/manuelle Einbindung eingebunden hast, und ob nicht die _once Version von require oder include verwendet hast.

#edit
Dein Bild sagt mir einfach mal GAR NICHTS, tut mir leid ;)
07/28/2014 00:08 FreewayC#6
Vielen Dank, mit include_once funktioniert alles :)


freundliche Grüße