Blah: et break blah;

Bonjour,

Il me semble que les ":" de blah (blah:)

En effet, quand je lance le script ci-dessus, j'obtient le message suivant
Parse error: syntax error, unexpected ':' in /home/xxx/xxx/test.php on line 7

Quelle est la bonne syntaxe? j'utilise php 5

<?php

for ($i = 0; $i < 9; $i++)
{
if (true) {
break blah;
}
echo "not shown";
blah:
echo "iteration $i\n";
}
?>
Configuration: Windows XP
Firefox 2.0.0.14

3 réponses

  1. Merci de ta réponse, j'ai depuis lu pas mal de chose et non apparement il n'existe pas d'équivalent de "GOTO LABEL" en php

    Voiçi ce que j'aurais aimé faire:

    Si condition 1 OK -> Aller au for
    Si condition 1 NON OK -> ELSE

    blah:
    for($i=0;$i<strlen();$i++)
    {
    if (condition 1 réalisée}
    {
    Liste d'instructions
    break blah;
    }
    else
    {
    autre instruction
    }

    On dit que si
    "Si tu as besoin d'un goto c'et que tu as un soucis dans ton algorithme"

    comment m'être mes instructions dans une fonction?

    }
    0
    1. Est-ce que tu as un algorithme, parce que là je ne comprends pas tout ?

      L'instruction IF...ELSE est exclusive. C'est à dire que :
      SI Condition ALORS instructions1
      SINON instructions2

      Du coup, si ce que tu veux, c'est dans ta boucle FOR, éxécuter une action SI la condition1 n'est pas réalisée, il suffit de la tester :
      FOR (...) {
      // SI (NON condition1)
         IF (! condition1) {
            instructions
         }
      }


      Et si tu veux sortir de ta boucle SI tu as condition1, un BREAK te permet d'en sortir, et de passer à la suite.
      0
      1. Bonjour,

        for ($s=0;$s<count($new);$s++)
        {
        blah:
        for ($i=0;$i<strlen($new[$s][1])-7;$i++)
        {
        $windows_end="".substr($new[$s][1],$i,1)."".substr($new[$s][1],$i+1,1)."".substr($new[$s][1],$i+2,1)."".substr($primers_new[$s][1],$i+3,1)."";

        if($windows_end==$end3)
        {
        //si je suis dans ce cas,je veux revenir au niveau de la 2ième boucle for avec ($new[$s][1]=x et $end3=y)
        $new[$s][1]=x;
        $end3=y;

        break blah;
        }
        else
        {
        //print("$windows_end_forward ($i) diff $end3_forward_last_subunit<br>");
        }
        }
        }

        Je veux en fait, sortir de ma boucle (n°2)et refaire ma boucle avec de nouvelle valeur de$new[$s][1] et de $end3
        0