Ich versuche, zur nächsten Iteration der Schleife zu springen, wenn bestimmte Bedingungen nicht erfüllt sind. Das Problem ist, dass die Schleife trotzdem fortgesetzt wird.
Wo bin ich falsch gelaufen?
Aktualisiertes Codebeispiel als Antwort auf den ersten Kommentar.
foreach ($this->routes as $route => $path) {
$continue = 0;
...
// Continue if route and segment count do not match.
if (count($route_segments) != $count) {
$continue = 12;
continue;
}
// Continue if no segment match is found.
for($i=0; $i < $count; $i++) {
if ($route_segments[$i] != $segments[$i] && ! preg_match('/^\x24[0-9]+$/', $route_segments[$i])) {
$continue = 34;
continue;
}
}
echo $continue; die(); // Prints out 34
Sie überschreiben
$continue
. Es ist durchaus möglich, einzugeben, dass es in Ihren Schleifeniterationen auf 1 und dann auf 2 gesetzt wird.– Jason McCreary
24. November 2010 um 18:11 Uhr
Satz
$continue = 0;
gleich nach demforeach
… Ich wette, Sie werden es nicht bekommen1
mehr. A für 2, Sie müssten ihm sagen, dass er 2 Ebenen weitergehen soll, alsocontinue 2;
andernfalls geht es einfach zur nächsten Iteration von überfor
Schleife…– ircmaxell
24. November 2010 um 18:14 Uhr