Moin,
Du kannst dir ja noch mit einer Schleife behelfen, das ist dann ggbf. etwas langsamer.
$a = Array(0, 100, 500, 1000, 1500, 2000, 2500, ....);
$lvlup = 0; while($a[++$lvlup]<=$charexp && $lvlup<10);Arrays hmmm hmmm ... ja mal rumprobieren ...
Aber gibt es denn keine Möglichkeit, per SWITCH mehr als nur eine einzelne Zahl eingebe?
Klar: case 1: case 2: case 3: $lvlup = 1; break; case 4: case 5: ....
Was genau gefällt dir an obiger Lösung nicht? Es dürfte die einfachste Variante sein, wenn du nicht alles ausschreiben willst. if($charexp < 100) ...; else if($charexp < 500) ...; ... willst du ja offenbar explizit nicht. (Warum nicht? Gerüchten zufolge kann man sich auch schnell ein kleines Skript schreiben welches einem fix diese if-Klauseln erzeugt. *schauder* Man könnte das sogar als weitere 'Lösung' ansehen und dann eval verwenden. Aber eval ist bekanntlich böse.)
Oder ... da kommt mir gerade eine Idee: könnte ich nicht vorher Variablen mit einem Array füllen ( z.B. mit 1-99 ) und diese dann anstatt der Zahl hinter case setzen?
Klar, dann trifft der case halt zu wenn $charexp ein Array mit den Zahlen von 1 bis 99 ist. Das ist glaube ich nicht ganz was du willst.
Wäre das vielleicht eine Lösung?
Natürlich, nur halt für ein anderes Problem.
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~