php foreach weiter

Lesezeit: 2 Minuten

Benutzer-Avatar
JasonS

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 dem foreach… Ich wette, Sie werden es nicht bekommen 1 mehr. A für 2, Sie müssten ihm sagen, dass er 2 Ebenen weitergehen soll, also continue 2;andernfalls geht es einfach zur nächsten Iteration von über for Schleife…

    – ircmaxell

    24. November 2010 um 18:14 Uhr

Wenn Sie versuchen, Ihren zweiten zu haben continue gelten für die foreach Schleife, müssen Sie es von ändern

continue;

zu

continue 2;

Dadurch wird PHP angewiesen, die continue -Anweisung an die zweite verschachtelte Schleife, die die ist foreach Schleife. Ansonsten gilt es nur für die for Schleife.

Der Zweite fortsetzen befindet sich in einer anderen Schleife. Dieser wird nur die innere Schleife “neu starten”. Wenn Sie die äußere Schleife neu starten möchten, müssen Sie geben fortsetzen ein Hinweis, wie viele Schleifen es gehen sollte

continue 2;

Sehen Handbuch

Du rufst an continue in einem for Schleife, also wird Continue für die durchgeführt for Schleife, nicht die foreach eines. Verwenden:

continue 2;

Das continue innerhalb der for Schleife wird innerhalb der überspringen for Schleife, nicht die foreach Schleife.

1333570cookie-checkphp foreach weiter

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy