11
votes

PHP pause et continue en même temps

J'ai une boucle imbriquée comme si:

while(1){

    while($something){
        break & continue;
    }
    // More stuff that I don't want to process in this situation
}


4 commentaires

J'ai / alors des déclarations à l'intérieur de la 2e boucle qui déterminent si je devrais continuer, casser ou continuer et continuer. Je pourrais utiliser des variables pour déterminer cela, mais est-ce possible sans eux est ce que je demande


Cela ressemble plus à votre logique pourrait bénéficier d'une structure peu plus que toute autre structure; La pause et continuer sont généralement des derniers stations de recours pour commencer.


Je n'aime pas trop d'imbriquée si / Thens dans mes démons. Il y a une raison pour laquelle j'ai besoin d'utiliser des pauses et de continuer.


Une autre suggestion serait d'ajouter une décomposition fonctionnelle. Il sera plus facile de maintenir cette façon aussi.


3 Réponses :


1
votes

Utilisez simplement une «pause» dans la boucle intérieure. Il va sortir de la boucle interne et la boucle extérieure continuera.


2 commentaires

J'ai plus de choses après la 2e boucle que je ne veux pas traiter. Il y a une raison pour laquelle j'en ai besoin de cette façon.


Oh je vois. Cela manquait dans le code que vous avez posté. Avez-vous examiné la pause numérotée et continuez-vous? Voir ceci - Stackoverflow.com/Questtions/5167561/...



0
votes

Après l'intérieur, pouvez-vous simplement utiliser une instruction IF pour exécuter la suite?

while(1){

    while($something){
        break;
    }

    if (!$something) {
       continue;
    }

    // More stuff that I don't want to process in this situation
}


1 commentaires

Bien sûr que je peux, et c'est ce que je vais probablement faire. Ma question était que cela est possible de faire sans variables supplémentaires



12
votes

Vous pouvez continuer 2; dans votre boucle interne pour continuer la boucle extérieure depuis le début.

http://php.net/manual/fr/control-tructures. continuer.php

Continuer Accepte un argument numérique facultatif qui lui dit combien Niveaux de boucles enfermantes Il devrait passer à la fin de. Le défaut la valeur est 1 , sautant ainsi à la fin de la boucle actuelle.


0 commentaires