überspringen - switch continue php




php foreach weiter (3)

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 gegangen?

Code-Beispiel als Antwort auf den ersten Kommentar aktualisiert.

    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

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


Der zweite weiter ist in einer anderen Schleife. Dieser "startet" nur die innere Schleife. Wenn Sie die äußere Schleife erneut starten möchten, müssen Sie fortsetzen, wieviele Schleifen nach oben gehen sollen

continue 2;

Siehe Manual


Wenn Sie versuchen, Ihre Sekunde continue auf die foreach Schleife anzuwenden, müssen Sie sie ändern

continue;

zu

continue 2;

Dadurch wird PHP angewiesen, die continue Anweisung auf die zweite geschachtelte Schleife anzuwenden, die die foreach Schleife ist. Ansonsten gilt dies nur für die for Schleife.







continue