Problem mit Schleife in Funktion (PHP)
-
Hi,
ich habe diese funktion:
function create_list()
{
key, topics))
{
echo "$key => val
"; } */ for (i=0; topics); $i++)
{
echo toptics[i] . "<br>";
}
}Bei der For Schleife, wird meine Browserseite nicht geladen, bzw, es kommt die Meldung, dass die Seite nicht angezeigt werden kann.
Verwende ich die While Version und klammer das for ding aus, dann geht es.
Wieso ist das so? Wieso geht das for nicht?
hardy
-
Weil du bei der while()-Schleife nicht auf die gleiche Bedingung prüfst wie bei der for()!
sizeof() gibt dir afaik die größe des für die Variable allokierten Speichers, nicht die Anzahl der Elemente! nimmst du statt sizeof() count() müsste es eigentlich auch mit der for()-Schleife funktionieren!
Außerdem hast du dich in der schreibweise von $topics in der echo-Anweisung der for()-Schleife verschrieben; Wundert mich, dass du keine Notice bekommst...
Also entweder:
for($cnt = 0; $cnt < count($topics); $cnt++) { print($topics[$cnt].'<br />'); }
oder:
for($cnt = 0; isset($topics[$cnt]); $cnt++) { print($topics[$cnt].'<br />'); }
-
Du hast dich in der for-Schleife nur vertippt: $toptics
edit: War wohl etwas sehr langsam - der Code funktioniert aber sonst so wie du ihn hast.
@Reyx: sizeof() ist nur ein Alias für count()
-
Ich dachte sizeof() funktioniert in PHP wie in C(++)...
Man lernt halt immer wieder dazu
Aber er hat sich nicht in der For-Schleife vertan (naja, in der echo()-Anweisung schon, aber nicht in der for()-Schleife als solche. Und ein falsches echo() kann wohl nicht der Grund dafür sein, dass die Seite nicht geladen werden kann, oder?
Wenn die Seite nicht geladen werden kann deutet dass doch i.d.R. auf Dinge wie Endlosschleifen hin...
-
Reyx schrieb:
Aber er hat sich nicht in der For-Schleife vertan
Ich habe mal auch den ganzen Rumpf mit zur For-Schleife gerechnet - aber ich denke, er sollte wissen, was ich meinte
Reyx schrieb:
Und ein falsches echo() kann wohl nicht der Grund dafür sein, dass die Seite nicht geladen werden kann, oder?
Naja, ist eben die Frage, ob die Seite nicht einfach nur leer geblieben ist
Bei mir hat zumindest der obige Code-Ausschnitt (nach Korrektur des Vertippers) ohne Probleme funktioniert