'goto' in PHP ?



  • Ich stimme euch zu in Sachen goto ist unübersichtlich etc.
    Man kann alles, was man mit goto machen kann auch in Schleifen regeln.
    Dies würde ich auch tun!

    MfG MAV



  • alles

    falsch. es gibt einige aussnahmen die man NUR mit goto lösen kann.



  • z.b.?



  • Ach wirklich?
    Die möchte ich sehen. 🙂
    Z.B. folgendes, was man auch lösen kann:

    while(true)
    {
    for(int i = 0; i < max;)
    {
    if(i == j)
     goto a;
    }
    }
    a:
    

    Man kann es anders lösen, aber auch:

    bool loop=true;
    while(loop)
    {
    for(int i = 0; i < max;)
    {
    if(i == j)
    loop = false;
    }
    }
    

    Nagut, du spekulierst auf etwas anderes.
    Bitte sag mal...

    MfG MAV

    [ Dieser Beitrag wurde am 11.05.2003 um 16:19 Uhr von Mis2com editiert. ]


  • Mod

    da hat bei mir bis jetzt immer ein return gereicht



  • @Mis2com: Du hast noch das break zum Abbrechen der for-Schleife vergessen 😉



  • Naja es gibt in C++ schon ein paar Situationen wo es Sinn macht, mehrfach verschachtelte Schleifen z.B. ... ich verwende es auch so etwa 2 mal im Jahr.

    Aber es ich sage nur das es ganz selten mal Sinn macht, umgehen kann man es IMMER.



  • Hi!

    Mein Problem ist, dass ich in einer else if schleife bin .. und dann einen code von einem anderen else if ausführen will. Sonst müsste ich den Code zweimal schreiben. Eine Funktion wäre unnötig dafür, da ich dann immer die lästigen Parameter da sind. Und hier ist einfach ( ob ihr wollt oder nicht ) eine GOTO funktion einfach Perfekt. 😉

    @mar3000:
    Sry, bitte nicht persöhnlich nehmen!
    🙄
    Bye



  • zum einen könntest du global verwenden, wenn es dir um die Parameter geht.
    Eine andere Möglichkeit wäre noch ein switch - hier kannst du infach ein break weglassen und somit in den nächsten case-Block springen 🙄



  • naja wenn das if viel abfragt, vorallem mit logischen Verknüpfungen hilft ein switch auchnet sooviel weiter, aber ein paar verschachtelte ifs helfen bestimmt.

    statt

    if($blubb == 2)
    {
      machewas1;
    }
    else if($blubb == 1)
    {
      machewas2;
      goto fiesesgoto;
    }
    else if($bla == 1 && blubb ==2)
    {
      fiesesgoto:
      machewas3;
    }
    
    beispielsweise
    
    if($blubb == 2)
    {
      machewas1;
    }
    else if($bla == 1 && blubb ==2 || $blubb == 1)
    {
      machewas3;
      if($blubb == 1)
      {
         machewas2;
      }
    }
    

    sicher wird das dann irgendwann zu extrem, aber dann nimmst du halt funktionen


Anmelden zum Antworten