php - switch case - angaben von ranges nicht möglich?
Hallo Welt, wie ich mich soeben in die Syntax von PHP eingelesen habe, fand ich leider keine Möglichkeit in einem *Switch-Case-Block* eine *Range* anzugeben, was ich nur schwer glauben möchte das dem so ist. Darum habe ich bereits in der PHP-Online-Dokumentation als auch via Google geschaut, doch wurde ich leider nicht fündig. Was ich wissen möchte ist wie man diese *Range* konkret schreiben muss /(sofern PHP das kann)/ anstatt einen *CASE* jedesmal für jedes einzelne mögliche Element explizit anzugeben so nach der Art: "*/Case 1: Case 2: Case 3:/*" oder ähnlichem, wäre ein "*/Case 1-3/*" oder "*/Case 1..3/*" bzw. "/*Case #64..#90*/" /(was dem jeweiligen ASCII-Wert entspricht)/ doch wesentlich einfacher, insbesondere wenn man bedenkt das es sich bei einer *RANGE* doch um einen größeren Bereich handeln kann. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Martin Parusel wrote:
wie ich mich soeben in die Syntax von PHP eingelesen habe, fand ich leider keine Möglichkeit in einem *Switch-Case-Block* eine *Range* anzugeben, was ich nur schwer glauben möchte das dem so ist.
Nein, das geht nicht mit switch.
[...] anstatt einen *CASE* jedesmal für jedes einzelne mögliche Element explizit anzugeben so nach der Art: "*/Case 1: Case 2: Case 3:/*" oder ähnlichem, wäre ein "*/Case 1-3/*" oder "*/Case 1..3/*" bzw. "/*Case #64..#90*/" [...] doch wesentlich einfacher
Du musst dann auf ein if ... else Konstrukt ausweichen. if ($var >= 1 AND $var <= 3) { ... } else if ($var >= 64 AND $var <= 90) { ... } else { ... } Ist auch nicht viel mehr mehr Schreibarbeit als ein switch Konstrukt. Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Joachim Marx schrieb:
Du musst dann auf ein if ... else Konstrukt ausweichen.
if ($var >= 1 AND $var <= 3) { ... } else if ($var >= 64 AND $var <= 90) { ... } else { ... }
Ist auch nicht viel mehr mehr Schreibarbeit als ein switch Konstrukt.
Ah ok, auf die Idee bin ich so auch noch nicht gekommen, ich suchte verzweifelt nach einem GOTO und nach einer Label Möglichkeit, um es nach Perl-Art zu erledigen, was PHP aber nicht kennt. Mir geht es dabei eigentlich nur darum nur so viele IF abfragen wie unbedingt nötig sind aufzurufen, gilt ebenso für Jumps. Doch wie Meister JoMa geschildert haben die Lösung des Problems, es funktionieren werden wie gewollt, weshalb sich sein Padawan-Schüler MaPa abermals für seinen weisen Rat bedankt :D -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (2)
-
Joachim Marx
-
Martin Parusel