Status ausschließen
bearbeitet von
Hallo
> Aber warum hat meine erste Variante nicht funktioniert?
Weil du den falschen Operator verwendet hast.
~~~PHP
$p_status != "6e623de7c366c92accd2b4a7ee49ad2a" OR // ...
~~~
Damit eine Verknüpfung mit dem `or`{: .language-php}-Operator `true`{: .language-php} ergibt, reicht es, wenn einer der Operanden `true`{: .language-php} ergibt. Wenn die erste Prüfung erfolgreich ist, also `$p_status`{: .language-php} nicht dem Vergleichswert entspricht, dann ist also der gesamte Ausdruck `true`{: .language-php}. – Da wird dann auch gar nicht weiter ausgewertet.
Du sagst also nicht: „Wenn `$p_status`{: .language-php} nicht den angegegeben Werten entspricht, mach was!“
Du sagst: „Wenn *einer* der Werte nicht mit `$p_status`{: .language-php} übereinstimmt, mach was!“
Du wolltest sagen: „Wenn `$p_status`{: .language-php} nicht mit diesem Wert übereinstimmt *und* `$p_status`{: .language-php} nicht mit diesem Wert übereinstimmt *und* so weiter und so fort.“ – also:
~~~PHP
$p_status != "6e623de7c366c92accd2b4a7ee49ad2a" AND // ...
~~~
Viele Grüße,
Orlok