Robert B.: Status ausschließen

Beitrag lesen

Hallo Bernd,

<?php if (
	$p_status != "6e623de7c366c92accd2b4a7ee49ad2a" OR
	$p_status != "602c5602d0a86003a925951b46a012b4" OR
	$p_status != "5555d1be56a4b410da755026783b4d9e" OR
	$p_status != "99ec7d6e86ea7540c6479c198aa1bf70" OR
	$p_status != "233d490e2c4c38f9ad47164316da1527" OR
	$p_status != "15d302ec8c7b23398aab3ad557699a31" OR
	$p_status != "cad62527260ce5310abd232ce98cb4a7"  ): ?>
<form></form>
<?php endif ?>

wenn ich es richtig verstehe sage ich doch damit, wenn der Status nicht die oben genannten Nummern sind, dann soll das <form> angezeigt werden. Oder habe ich irgendwo ein Gedankenfehler?

das tatsächliche Ergebnis des obigen Ausdrucks ist ja schon mehrfach hier beschrieben worden, ebenso die Lösung des Problems, aber ich wollte noch einmal auf das klare if (true) welches Gunnar beschreibt zurückkommen:

Gemäß der Booleschen Algebra kannst du in obigem Ausdruck die Negation ausklammern, d.h. folgender Ausdruck ist äquivalent:

if (! (
    $p_status === "6e623de7c366c92accd2b4a7ee49ad2a" AND
 	  $p_status === "602c5602d0a86003a925951b46a012b4" AND
 	  $p_status === "5555d1be56a4b410da755026783b4d9e" AND
 	  $p_status === "99ec7d6e86ea7540c6479c198aa1bf70" AND
 	  $p_status === "233d490e2c4c38f9ad47164316da1527" AND
   	$p_status === "15d302ec8c7b23398aab3ad557699a31" AND
 	  $p_status === "cad62527260ce5310abd232ce98cb4a7"))
{
    // …
}

Es ist offensichtlich, dass die innere Klammer, also die ganzen UND-Verknüpfungen nie erfüllt sein können – der Status kann ja nicht alle verschiedenen Werte gleichzeitig haben –, dementsprechend ist die Negation davon immer wahr.

Viele Grüße
Robert