else oder else if - Frage

Alice

Erfahrenes Mitglied
Hallo.

PHP:
if ($var < '100') {
mach dies wenn 100 grösser als $var ist...
}
else {
mach das wenn $var grösser als 100 ist...
}
else {
fehler...
}

Ist das so falsch?
 
Hi

Ja.
Ins erste else kommt man immer, wenn man nicht ins if kommt.
Und da man dann immer ins if oder ins erste else kommt, was bleibt dann an Fällen noch übrig? Nichts.

Gruß
 
Ja. Die zweite else bezieht sich auf kein if, daher sollte das so nicht funktionieren dürfen (Syntax Error - unerwartetes else). Außerdem sollltest du bei arithmetischen Operationen nicht mit Strings arbeiten.
 
Hab es jetzt so:
PHP:
if ($var < '100') {
mach dies wenn 100 grösser als $var ist...
}
elseif ($var > '100') {
mach das wenn $var grösser als 100 ist...
}
else {
fehler...
}
 
Was willst du denn eigentlich erreichen? Jetzt kommst du in den Else-Zweig immer dann wenn $var == 100.

Wie von Saftmeister schon geschrieben, solltest du wenn du arithmetische Vergleiche willst keine Strings verwenden.
 
genau, keine Strings. Denn '9' ist grösser als '100'. Jedoch ist 9 kleiner als 100
 
Zuletzt bearbeitet:
:)
PHP:
if($var>100){}
Eben keinen String zum Vergleich heranziehen.
(Yaslaws Text genau betrachten!)

(@Yaslaw :) größer als.. ist eine Fallunterscheidung
bei Vergleich "wie", bei Unterscheidung "als")

mfg chmee
 
Zuletzt bearbeitet:
Müsst ihr das denn immer so kompliziert erklären? Ich verstehe ehrlich gesagt kein Wort.

PHP:
$Var = '30';

if ($Var > '30') {
mach dies...
}
elseif ($Var < '30') {
oder das...
}
else {
fehler...
}

Edit:

In meinem Skript gibt es nur Ja oder Nein. Also ist grösser oder ist nicht grösser. Denn ohne diese Abfrage, braucht das Skript nicht durchlaufen, was es auch nicht wird.
 
Ohne Strings heißt:

PHP:
$Var = 30;

if ($Var > 30) {
mach dies...
}
elseif ($Var < 30) {
oder das...
}
else {
fehler...
}

Und nochmal der Hinweis darauf das du in den Else-Zweig (also Fehler) kommst wenn $var genau 30 ist.

Erklärung warum keine Strings: Wenn du zwei Zeichenketten miteinander vergleichst werden diese Zeichen für Zeichen verglichen. Das bedeutet das bei '9' und '100' der '9'er mit dem '1'er verglichen wird, und da 9 > 1 folgt daraus das der String '9' größer ist als '100'. Was man aber meistens braucht ist ein arithmetischer Vergleich (also die mathematischen Werte der Variablen sollen verglichen werden), das erreicht man in dem man die Hochkomma weglässt. Dann ist 9 < 100.
 
Zuletzt bearbeitet:
Zurück