'goto' in PHP ?
-
Woher weiß ich wohl, dass ihr nicht sehr lange Programmiert
-
Was soll denn diese Anspielung?
Scheinbar scheinst DU nicht sehr lange zu programmieren, da du sonst wüsstest, dass GOTO nicht verwendet werden soll. Schon mal was von Spaghetti-Code gehört? Wozu gibt es denn Schleifen und Funktionen?
-
Übrigens gibts GOTO in PHP, bin mir aber nicht sicher, obs in allen Versionen funktioniert:
if($bla = 'bla') goto END; ... // Code ... END:
-
... natürlich rate ich vom Gebrauch ab, aus oben genannten Gründen. Es ist unübersichtlich und performancetechnisch sowieso absolut schlecht.
-
performancetechnisch ist es doch nicht schlecht !!
-
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. ]
-
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