Dadelu
18.10.2011, 14:37:48
Hallo Community
Ich hätte da mal eine Frage. Nach langer Suche habe ich irgendwie noch nicht die richtige Antwort gefunden welche das Problem lösen könnte.
Ich habe folgende Class: sqlGen.inc.php mit folgendem Code:
private $tabellenName;
private $felder = array();
private $typ;
private $laenge;
private $flag_Index = false;
private $index;
public function __construct($tabellenName){
$this->tabellenName = $tabellenName;
}
public function addFeld($feldname,$typ,$laenge,$kommentar){
$arr = $this->felder;
foreach($arr as $test){
echo("im while<br>");
if($test['Name'] == $feldname){
return 'bereits vorhanden';
}
else {
$this->felder[] = array("Name" => $feldname,"Typ" => $typ, "Laenge" => $laenge, "Kommentar" => $kommentar);
}
}
}
Nun mein Problem: Meiner Meinung, oder besser gesagt mein Wunsch wäre jetzt, wenn ich die funktion addFeld 2 mal mit dem gleichen Feldname aufrufe, dass die Meldung kommt 'bereits vorhanden'. Aber irgendwie passiert gar nichts.. Wenn ich echo's einbaue sehe ich, dass er nicht in die foreach anweisung kommt. Wenn ich die Linie für das hinzufügen eines neuen Feldes ganz am Anfang verschiebe, funktioniert die ganze Logik.
Nun meine Frage: Was mache ich genau falsch? Es handelt sich ja um ein private Objekt daher sollte der Arry Felder immer vorhanden sein während eines Aufrufes?
Vielen Dank im Voraus für die Hilfe!
Gruss Dadelu
Ich hätte da mal eine Frage. Nach langer Suche habe ich irgendwie noch nicht die richtige Antwort gefunden welche das Problem lösen könnte.
Ich habe folgende Class: sqlGen.inc.php mit folgendem Code:
private $tabellenName;
private $felder = array();
private $typ;
private $laenge;
private $flag_Index = false;
private $index;
public function __construct($tabellenName){
$this->tabellenName = $tabellenName;
}
public function addFeld($feldname,$typ,$laenge,$kommentar){
$arr = $this->felder;
foreach($arr as $test){
echo("im while<br>");
if($test['Name'] == $feldname){
return 'bereits vorhanden';
}
else {
$this->felder[] = array("Name" => $feldname,"Typ" => $typ, "Laenge" => $laenge, "Kommentar" => $kommentar);
}
}
}
Nun mein Problem: Meiner Meinung, oder besser gesagt mein Wunsch wäre jetzt, wenn ich die funktion addFeld 2 mal mit dem gleichen Feldname aufrufe, dass die Meldung kommt 'bereits vorhanden'. Aber irgendwie passiert gar nichts.. Wenn ich echo's einbaue sehe ich, dass er nicht in die foreach anweisung kommt. Wenn ich die Linie für das hinzufügen eines neuen Feldes ganz am Anfang verschiebe, funktioniert die ganze Logik.
Nun meine Frage: Was mache ich genau falsch? Es handelt sich ja um ein private Objekt daher sollte der Arry Felder immer vorhanden sein während eines Aufrufes?
Vielen Dank im Voraus für die Hilfe!
Gruss Dadelu