Orlok: Status ausschließen

Beitrag lesen

Hallo

Aber warum hat meine erste Variante nicht funktioniert?

Weil du den falschen Operator verwendet hast.

$p_status != "6e623de7c366c92accd2b4a7ee49ad2a" OR // ...

Damit eine Verknüpfung mit dem or-Operator true ergibt, reicht es, wenn einer der Operanden true ergibt. Wenn die erste Prüfung erfolgreich ist, also $p_status nicht dem Vergleichswert entspricht, dann ist also der gesamte Ausdruck true. – Da wird dann auch gar nicht weiter ausgewertet. EDIT: Ist der Teilausdruck hingegen false, weil die Werte übereinstimmen, dann wird der nächste Teilausdruck ausgewertet, der dann garantiert – so wie der ganze Ausdruck – zu true evaluiert. Das heißt, wie tk und Gunnar bereits geschrieben haben, ist die Gesamtbedingung immer wahr.

Du sagst also nicht: „Wenn $p_status nicht den angegegeben Werten entspricht, mach was!“

Du sagst: „Wenn einer der Werte nicht mit $p_status übereinstimmt, mach was!“

Du wolltest sagen: „Wenn $p_status nicht mit diesem Wert übereinstimmt und $p_status nicht mit diesem Wert übereinstimmt und so weiter und so fort.“ – also:

$p_status != "6e623de7c366c92accd2b4a7ee49ad2a" AND // ...

Viele Grüße,

Orlok