PDA

Vollstndige Version anzeigen : Check


martin_E
18-06-2004, 10:27
Ich versuche gerade einen kleinen Check durchzufhren...

Vom Prinzip her sollte das so funktionieren:

Eine Zahl wird vom Benutzer eingegeben, sie darf nur die Werte 0, 240, oder 255 haben. Ansonsten wird ein Fehler ausgegeben.


$zahl

if ($zahl != 0 || $zahl != 240 || $zahl != 255)
{ echo "Fehler!"}


Ich dachte mir das dies eigentlich funktionieren msste - tut es aber nicht, d.h. der Fehler wird immer ausgegeben.

Kann mir da jemand weiterhelfen !?

bazubi
18-06-2004, 10:33
if (!($zahl == 0 || $zahl == 240 || $zahl == 250)) {

echo "Fehler";

}

martin_E
18-06-2004, 10:38
Danke!

Hast du zuflligerweise noch eine Erklrung weshalb das so ist?

feuervogel
18-06-2004, 10:54
du hast hier eine oder-verknpfung in der bebingung. damit die oder verknpfung war wird, muss nur eines der einzelnen glieder war werden...

$zahl != 0 || $zahl != 240 || $zahl != 255

egal welche zahl du nimmst, sie ist immer ungleicht 0 oder 240 oder 255, denn eine zahl kann ja nicht 0, 240 und 255 zugleich sein.

wenn du eine und-verknpfung hast, mssen alle aussagen wahr werden, damit die bedingung wahr wird. du knntest also auch schreiben:

$zahl != 0 && $zahl != 240 && $zahl != 255

nun hat bazubi einfach nachgeschaut, ob das, was du willst (nmlich sei $zahl = 0, 240 oder 255) wahr ist, aber negiert, wenn sie also nicht gleich ist.

martin_E
18-06-2004, 13:01
ja klar.. logisch eigentlich :)

Danke!

feuervogel
18-06-2004, 19:45
ja, das hat einiges mit (aussagen-)"logik" zu tun:)