PHP "weiter" Stoppt die foreach-Schleife
Dies scheint wie eine sehr dumme Frage, aber ohne Veränderungen an der server.. continue-Funktion in PHP scheint begonnen zu haben, funktioniert nicht richtig.
Beispiel:
function contTest(){
$testers = array(1, 3, 4, 5);
foreach($testers as $test){
echo "Got here<br>";
continue;
echo $test."<br>";
}
}
Ausgänge:
Got here
Got here
Got here
Got here
In der Erwägung, dass:
function contTest(){
$testers = array(1, 3, 4, 5);
foreach($testers as $test){
echo "Got here<br>";
echo $test."<br>";
}
}
Ouputs:
Got here
1
Got here
3
Got here
4
Got here
5
Ich habe diese Funktion vor und es schien nicht, um diesen Effekt zu haben. Irgendwelche Ideen? Wie ich schon sagte, nichts auf dem server geändert hat, also die PHP version ist die gleiche.
- code funktioniert. das, was Sie brauchen?
- Weiter arbeitet, wie es sollte uk3.php.net/manual/en/control-structures.continue.php
- Soweit ich informiert bin, ist die Funktion 'weiter' ist zu umgehen, um den Rest des Codes innerhalb des code-Blocks ein und starten Sie die nächste iteration der Schleife. Also es scheint zu tun seine Arbeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, was Wirkung, die Sie wollen, aber dieses Beispiel korrekt funktioniert.
continue
Bedürfnisse zu brechen, aktuelle iteration und geht zum nächsten, ohne Ausführung von code unter dieser operator. Und diese Funktion funktioniert in diesem Fall die ganze Zeit seit PHP 4.Ich glaube, Sie brauchen, um zu verstehen, wie weiter funktioniert. ich wollte hinzufügen, so dass, wenn einige Körper sonst begegnet dieselbe, kann dies als Referenz.
Müssen Sie den Schlüssel word weiter Wenn Sie möchten, ignorieren Sie die nächste iteration einer Schleife.
continue is always used with if condition
Entsprechend Beispiel hier .
Dies funktioniert wie erwartet und perfekt und hier ist warum.
Sie sind Schleife durch das array $Testern die vier Elemente im inneren und
nach immer jedes element , sagen Sie php, ignorieren Sie die Elemente mithilfe
weiter und das ist der Grund, warum es keine Ausgabe der Elemente des Arrays
$Tester.
Lassen Sie mich versuchen, neu zu schreiben, dein Beispiel hier.
Habe ich nur verwendet
continue
wenn element gleich 1 ist, was bedeutet, dass elementübersprungen (ignoriert).
Die Ausgabe ist :
Wie Sie sehen können, 1 wird ignoriert.
Den
continue
sagt im Grunde ignorieren Sie den rest des Codes nachcontinue
und beginnen Sie mit dem nächsten Schritt der foreach-Schleife. Also das Ergebnis, das Sie bekommen ist vollkommen in Ordnung (siehe http://www.php.net/manual/de/control-structures.continue.php). Es muss einen anderen Effekt, der verändert Ihren Ausgang.Dies ist, was weiterhin bedeutet genau das:
weiterhin verwendet wird, innerhalb von Schleifenstrukturen, die zu überspringen Sie den rest der aktuelle loop iteration und fortsetzen der Ausführung an die Zustandsbewertung und dann der Beginn der nächsten iteration.
-- http://www.php.net/manual/en/control-structures.continue.php