quakenet:#php Tutorial

Author: Progman, zuletzt bearbeitet von progman @ 2005/11/02 15:30:05

Bitte beachten Sie, dass die Tutorialkapitel zusammenhängen. Wenn sie direkt auf ein Kapitel verlinkt wurden müssen Sie gegebenenfalls die vorherigen Kapitel auch lesen. Achten Sie beim lesen darauf, dass Sie kein Kapitel überspringen.

Logische Verknüpfungen

  1. Verbinden von Bedingungen
  2. Die AND-Verknüpfung
  3. Die OR-Verknüpfung
  4. NOT-Verknüpfung
  5. Resume der Grundverknüpfungen
  6. Die 4 erweiterten Verknüpfungen
  7. NAND-Verknüpfung
  8. NOR-Verknüpfung
  9. Die XOR-Verknüpfung
  10. Die XNOR-Verknüpfung
  11. Kombinationen aus allen Verknüpfungen
  12. Warum die Symbole aus der Digitaltechnik
  13. Bestimmte Regeln der Verknüpfungen

1. Verbinden von Bedingungen

Es kommt vor, dass man 2 oder mehrere Bedingungen in einer If-Abfrage kontrollieren will. Dabei gibt es eine Menge Kombinationsmöglichkeiten, wie man diese Bedingungen verknüpft kann. Es gibt 3 Grundkombinationen und 4 erweiterte Kombinationen.

2. Die AND-Verknüpfung

Die einfachste logische Verknüpfung ist die AND-Verknüpfung. AND kennt jeder aus dem Englischunterricht und bedeutet UND. Im übertragenen Sinne heißt dies, dass eine AND-Verknüpfung nur dann true/wahr ergibt wenn der linke und der rechte Ausdruck true ergibt. Dieser Satz wird später am Beispiel klar. Das Zeichen für eine AND-Verknüpfung in PHP ist das Wort AND.

<?php
    $var
= (false AND false); // false
    
$var = (false AND true ); // false
    
$var = (true  AND false); // false
    
$var = (true  AND true ); // true
?>

Diese Bedingungen kann man in Form einer Wahrheitstabelle verfassen, die dann so aussieht.

Tab.:Die Wahrheitstabelle für eine AND-Verknüpfung
Ausdruck 1 (A) Ausdruck 2 (B) Ergebnis (Q)
0 0 0
0 1 0
1 0 0
1 1 1

Gesprochen heißt das: Wenn der Teilausdruck links wahr ist und der Teilausdruck rechts wahr ist, so ist der gesamte Ausdruck wahr. Dies gibt es zum Beispiel bei einem Login-Script. Man ist nur eingeloggt, wenn Benutzername und Passwort richtig sind.

<?php
    $name
= "Max";
    
$passwort = "login";
    
// Diese Werte kommen z.B. von einem Formular
    
    
if (("Max" == $name) AND ("foobar" == $passwort) ) {
        echo
"Login ist richtig, Willkommen im Adminbereich";
    } else {
        echo
"Der Login ist nicht gültig";
    }                                      

    
/*
    Die Leerzeichen in der If-Abfrage sind nur zur besseren
    Übersicht. Sie können auch weggelassen werden.
    */
?>

Mit diesen Loginscript und den Daten "Max" und "Login" können wir uns nicht einloggen. Der Benutzername stimmt, dieser Vergleich ergibt true. Doch das Passwort stimmt nicht, dieser Vergleich ergibt false. Und true AND false ergibt, laut der Definition von einer AND-Verknüpfung und laut der Wahrheitstabelle den Ausdruck false. Das heißt, die If-Abfrage wird übersprungen und der else-Teil ausgeführt. In diesem Beispiel steht dann, dass der Login nicht gültig ist.

Für so eine AND-Verküpfung gibt es in der Digitaltechnik sogar ein Schaltzeichen. Vielleicht haben einige von euch es schon mal gesehen.

Das AND-Schaltzeichen
Abb.: Das AND-Schaltzeichen

Im Bild sieht man, dass links die Eingänge A und B sind. Dies sind in der Digitaltechnik die logischen Eingänge die entweder 1/true/wahr oder 0/false/falsch sind. Üblicherweise, wie auch in der Wahrheitstabelle zu sehen, nimmt man die Zahlen um anzudeuten ob an einem Eingang true oder false liegt. Das Q am Ende ist der Ausgang des Bauelements, der das Ergebnis der AND-Verknüpfung anzeigt.

3. Die OR-Verknüpfung

Die 2. Grundverknüpfung ist die OR-Verknüpfung. Bei dieser Verknüpfung muss mindestens 1 Teilausdruck wahr sein, damit der ganze Ausdruck wahr ist. Das Zeichen für eine OR-Verknüpfung ist in PHP das Wort OR.

<?php
    $var
= (false OR false); // false
    
$var = (false OR true ); // true
    
$var = (true  OR false); // true
    
$var = (true  OR true ); // true
?>

Die Wahrheitstabelle dieser Verknüpfung sieht dann so aus.

Tab.:Die Wahrheitstabelle für eine OR-Verknüpfung
Ausdruck 1 (A) Ausdruck 2 (B) Ergebnis (Q)
0 0 0
0 1 1
1 0 1
1 1 1

Gesprochen heißt das: Wenn der Teilausdruck links wahr ist und/oder der Teilausdruck rechts wahr ist, so ist der gesamte Ausdruck wahr. Oder man kann sagen: Wenn mindestens einer der beiden Bedingungen wahr ist, so ist der ganze Teilausdruck wahr. Ein Beispiel gibt es in einem Gästebuch. Wenn man die Eingaben vorher prüfen möchte kann man eine OR-Verknüpfung gut benutzen. Man prüft ob einer der Formulareingaben leer ist und gibt ggf. eine Fehlermeldung aus.

<?php
    $name
= ""; // den Name hat man vergessen
    
$text = "Hallo du, ich wollte mich mal im Gästebuch eintragen";
    
// Die Werte kommen z.B. aus einem Formular

    
if (("" == $name) OR ("" == $text)) {
        echo
"Ihre Eingaben sind nicht vollständig";
    } else {
        
//
        // Eintrag in der Datenbank hinzufügen
        //                                    
        
echo "Ihr Eintrag wurde hinzugefügt";
    }
?>

In diesem Beispiel wurde angenommen, dass man die Angabe zum Namen vergessen hat. Die 2. Bedingung ist false, es wurde ein Text eingegeben. Doch die 1. Bedingung ist true. Somit steht dann da true OR false und dies ergibt, laut Definition und Wahrheitstabelle, den Ausdruck true. Somit wird der If-Teil ausgeführt, und es kommt eine Fehlermeldung, dass die Eingaben nicht vollständig sind.

Für so eine OR-Verküpfung gibt es in der Digitaltechnik auch ein Schaltzeichen.

Das OR-Schaltzeichen
Abb.: Das OR-Schaltzeichen

Hier sind auch wieder die beiden Eingänge A und B. Am Ausgang Q dieses Bauteils wird das Ergebnis der OR-Verknüpfung angezeigt. An der Beschriftung des Bauteils erkennt man, dass es eine OR-Verknüpfung darstellt. Wenn man die Eingänge als Zahlen von 0 und 1 annimmt und man die Eingänge addiert, so ergibt dies die OR-Verknüpfung.

A | B | Summe
-------------
0 + 0 =   0  -> ist nicht >= 1, also Q = 0
0 + 1 =   1  -> ist       >= 1, also Q = 1
1 + 0 =   1  -> ist       >= 1, also Q = 1
1 + 1 =   2  -> ist       >= 1, also Q = 1
        

Dies erklärt das Zeichen im Kästchen.

4. NOT-Verknüpfung

Die letzte Grundverknüpfung ist die NOT-Verknüpfung. Naja, eigentlich ist es ja keine Verknüpfung. Denn der NOT-Operator verarbeitet nur einen einzigen Ausdruck. Der NOT-Operator invertiert ein booleschen Ausdruck. Er wandelt true in false und false in true um. In PHP ist der NOT-Operator das Ausrufezeichen !. Man schreibt das Ausrufezeichen vor dem Ausdruck den man invertieren, negieren oder umdrehen möchte.

<?php
    $name
= !true;  // $name ist nun bool(false)
    
$name = !false; // $name ist nun bool(true)
?>

Da dieser Operator ja nur ein Ausdruck verändert, ist die Wahrheitstabelle entsprechend etwas kleiner.

Tab.:Die Wahrheitstabelle für einen NOT-Operator
Ausdruck (A) Ergebnis (Q)
0 1
1 0

Den NOT-Operator hat man schon mal indirekt gesehen. Und zwar beim Vergleichsoperator !=. Dieser Vergleichsoperator ist eine Kombination aus == und !.

<?php                 
    $name
= "Max";
    
// Diese Daten kommen z.B. aus einem Formular

    
if (!("Max" == $name)) {
        echo
"Der Name ist nicht Max";
    } else {
        echo
"Der Name ist Max";
    }
?>

Der innere Vergleich "Max"==$name ergibt zwar, in dieser Situation, true, doch durch das ! wird true in false umgewandelt. Dadurch wird dann nicht der if-teil, sondern der else-Teil ausgeführt.

In der Digitaltechnik sieht das Symbol wie folgt aus.

Das NOT-Schaltzeichen
Abb.: Das NOT-Schaltzeichen

Das Wichtige an diesem Schaltzeichen ist nicht das Kästchen mit der 1, sondern der kleine Kringel hinter dem Kästchen. Der gibt an, dass der Ausgang des Bauelements negiert wird.

5. Resume der Grundverknüpfungen

Die logischen Grundverknüpfungen AND, OR und NOT müssen sitzen. Ihr werdet diese Verknüpfungen sehr häufig benutzen. Dementsprechend müsst ihr den Text noch mal lesen, falls ihr die Funktionsweisen nicht verstanden habt.

6. Die 4 erweiterten Verknüpfungen

Die 4 erweiterten Verknüpfungen sind Kombinationen aus den 3 Grundverknüpfungen. Manche sind in PHP schon vorhanden, andere müssen, durch die Grundverknüpfungen zusammengebaut werden. Diese 4 erweiterten Verknüpfungen sind in PHP nicht soooo wichtig. Man benutzt eher nur die 3 Hauptverknüpfungen. Hauptsache die 3 habt ihr drauf.

7. NAND-Verknüpfung

Eine NAND-Verknüpfung ist eine Kombination aus einem AND und einem NOT. Zur besseren Veranschaulichung schaltet man einen NOT-Operator hinter einer AND-Verknüpfung.

Aufbau einer NAND-Verknüpfung
Abb.: Aufbau einer NAND-Verknüpfung

Dementsprechend ist das Ergebnis der Wahrheitstabelle nur umgedreht.

Tab.:Die Wahrheitstabelle für eine NAND-Verknüpfung
Ausdruck 1 (A) Ausdruck 2 (B) Ergebnis (Q)
0 0 1
0 1 1
1 0 1
1 1 0

In PHP gibt es kein Zeichen für einen NAND Verknüpfung. Wenn man so eine Verknüpfung braucht, muss man sie aus einem AND und einem NOT zusammenbauen.

<?php
    $bedingung1
= true;
    
$bedingung2 = false;
    
    if (!(
$bedingung1 AND $bedingung2)) {
        
// ...
    
} else {
        
// ...
    
}
?>

In diesem Fall wird der IF-Teil ausgeführt, da true AND false den Ausdruck false ergibt und dieser durch ! in true umgewandelt wird.

Oben seht ihr den Zusammenbau der NAND-Verknüpfung mittels einem AND und einem NOT. In der Digitaltechnik gibt es auch dafür ein Zeichen.

Das NAND-Zeichen in der Digitaltechnik
Abb.: Das NAND-Zeichen in der Digitaltechnik

Hier wurde hinter dem AND der kleine Kringel hinzugefügt, der, wie ihr wisst, für ein NOT steht.

8. NOR-Verknüpfung

Eine NOR-Verknüpfung ist eine Kombination aus einem OR und einem NOT. Zur besseren Veranschaulichung schaltet man eine NOT-Operator hinter einer OR-Verknüpfung.

Aufbau einer NOR-Verknüpfung
Abb.: Aufbau einer NOR-Verknüpfung

Dementsprechend ist das Ergebnis der Wahrheitstabelle nur umgedreht

Tab.:Die Wahrheitstabelle für eine NOR-Verknüpfung
Ausdruck 1 (A) Ausdruck 2 (B) Ergebnis (Q)
0 0 1
0 1 0
1 0 0
1 1 0

In PHP gibt es kein Zeichen für eine NOR Verknüpfung. Wenn man so eine Verknüpfung braucht, muss man sie aus einem OR und einem NOT zusammenbauen.

<?php
    $bedingung1
= true;
    
$bedingung2 = false;

    if (!(
$bedingung1 OR $bedingung2)) {
        
// ...
    
} else {
        
// ...
    
}
?>

In diesem Fall wird der else-Teil ausgeführt, da true OR false den Ausdruck true ergibt und dieser durch ! in false umgewandelt wird.

Oben seht ihr den Zusammenbau der NOR-Verknüpfung mittels einem OR und einem NOT. In der Digitaltechnik gibt es auch dafür ein Zeichen.

Das NOR-Zeichen in der Digitaltechnik
Abb.: Das NOR-Zeichen in der Digitaltechnik

Hier wurde hinter dem OR der kleine Kringel hinzugefügt, der, wie ihr wisst, für ein NOT steht.

9. Die XOR-Verknüpfung

Die XOR-Verknüpfung hat es in sich, ist aber nicht schwer zu verstehen. Sie liefert nur dann true, wenn genau eine Bedingung true ergibt. Wenn keine oder beide Bedingungen true sind, liefert die XOR-Verknüpfung false. Das X vom XOR steht für Exklusiv, also ist dies eine Exklusiv-Oder-Verknüpfung. Der Aufbau einer solchen Verknüpfung mit AND, OR und NOT ist etwas komplizierter als die NAND und NOR Verknüpfungen. Zum Glück bringt PHP ein eigenes Zeichen für eine XOR-Verknüfungen von Haus aus mit, es ist das Wort XOR.

<?php
    $name
= (false XOR false);  // false
    
$name = (false XOR true );  // true
    
$name = (true  XOR false);  // true
    
$name = (true  XOR true );  // false
?>

Die Wahrheitstabelle sieht dann so aus.

Tab.:Die Wahrheitstabelle für eine XOR-Verknüpfung
Ausdruck 1 (A) Ausdruck 2 (B) Ergebnis (Q)
0 0 0
0 1 1
1 0 1
1 1 0

Eine XOR-Verknüpfung ist nur dann true wenn genau ein Ausdruck true ergibt. Ein Beispiel ist in einem Formular die Wahl des Geschlechts. Entweder man ist männlich oder man ist weiblich. Beides kann man nicht sein und gar nichts kann man auch nicht sein.

<?php
    $maennlich
= true;
    
$weiblich  = true;
    
// Dies Daten kommen z.B. aus einem Formular

    
if ($maennlich XOR $weiblich) {
        echo
"Ihre Eingabe ist korrekt";
    } else {
        echo
"Bitte wählen sie ein eindeutiges Geschlecht";
    }
?>

In diesem Beispiel hat man im Formular ein Häkchen bei "männlich" und "weiblich" gemacht. Dadurch sind beide Werte true. In der If-Abfrage steht dann true XOR true und das ergibt, laut Definition und Wahrheitstabelle, denn Wert false. Also wird in diesem Beispiel die Fehlermeldung ausgegeben, dass man schließlich ein eindeutiges Geschlecht wählen soll.

Das XOR Zeichen in der Digitaltechnik sieht wie folgt aus

Das XOR-Zeichen in der Digitaltechnik
Abb.: Das XOR-Zeichen in der Digitaltechnik

Hier sieht man, dass genau ein Eingang true ergeben muss, damit der Ausgang auch true ergibt. Wenn man die Eingänge als 0 und 1 nimmt und diese addiert, sieht man auch warum im Kästchen =1 steht.

A | B | Summe
-------------
0 + 0 = 0  -> ist nicht =1, also false
0 + 1 = 1  -> ist       =1, also true
1 + 0 = 1  -> ist       =1, also true
1 + 1 = 2  -> ist nicht =1, also false
        

Dadurch kann man die Bedeutung des Kästchen leicht merken. Verwechselt es aber nicht mit einer OR-Verknüpfung, das Zeichen sieht sehr ähnlich aus.

10. Die XNOR-Verknüpfung

Die XNOR-Verknüpfung ist eigentlich nix besonderes. Sie ist nur das Gegenteil von XOR also eine Kombination aus XOR und NOT.

Ein XNOR aus einem XOR und NOT
Abb.: Ein XNOR aus einem XOR und NOT
<?php
    $name
= !(false XOR false);  // true
    
$name = !(false XOR true );  // false
    
$name = !(true  XOR false);  // false
    
$name = !(true  XOR true );  // true
?>

Die Wahrheitstabelle sieht dann so aus.

Tab.:Die Wahrheitstabelle für eine XNOR-Verknüpfung
Ausdruck 1 (A) Ausdruck 2 (B) Ergebnis (Q)
0 0 1
0 1 0
1 0 0
1 1 1

Eine XNOR-Verknüpfung ist nur dann true, wenn beide oder keine Ausdrücke true.

Das XNOR Zeichen in der Digitaltechnik sieht wie folgt aus

Das XNOR-Zeichen in der Digitaltechnik
Abb.: Das XNOR-Zeichen in der Digitaltechnik

Es sieht wie das XOR Zeichen aus, nur mit dem Unterschied, dass hinter dem XNOR Zeichen ein Kringel vorhanden ist, welches den Ausgang negiert bzw. umdreht.

11. Kombinationen aus allen Verknüpfungen

Wie verschachtelte If-Abfragen können auch Logische Verknüpfungen verschachtelt werden. Dabei können große If-Abfragen entstehen die auf dem ersten Blick etwas unübersichtlich aussehen. Deshalb sollte man wieder Klammern benutzten um keine bösen Überraschungen zu erleben. Hier sind einige Beispiele, wie man solche Verknüpfungen kombinieren kann. Dies sind aber willkürliche Beispiele, sie müssen an sich nicht logisch sein.

<?php
    $name
= ($bedingung1 OR $bedingung2) AND ($bedingung3 OR $bedingung4);
    
$name = !($bedingung1 XOR ($bedingung2 AND ($bedingung3 XOR $bedingung4)));
    
$name = $bedingung1 OR true;
    
$name = (!($bedingung1 XOR $bedingung2) AND !$bedingung3);
?>

Diese Bespiele sehen, von Oben nach Unten, in der Digitaltechnik wie folgt aus.

Beispiel 1 mit der Digitaltechnik
Abb.: Beispiel 1 mit der Digitaltechnik
Beispiel 2 mit der Digitaltechnik
Abb.: Beispiel 2 mit der Digitaltechnik
Beispiel 3 mit der Digitaltechnik
Abb.: Beispiel 3 mit der Digitaltechnik

In diesem Beispiel ist das Ergebnis immer true, da x OR true immer true ist, unabhängig davon ob $bedingung1 nun true oder false ist.

Beispiel 4 mit der Digitaltechnik
Abb.: Beispiel 4 mit der Digitaltechnik

Hier sieht man, dass vor dem Eingang von $bedingung3 ein kleiner Kringel ist. Dies zeigt an, dass der Wert an diesem Eingang negiert bzw. umgedreht wird. Ein Kringel am Eingang geht genauso wie ein Kringel am Ausgang und spart in beiden Fällen das Zeichnen des NOT-Operators.

Ein beliebter Fehler ist die Prüfung einer Variablen wie folgt

<?php
    
if ($name == "max" OR "Müller" OR "Heinz") {
        echo
"Hi Admin";
    }
    else {
        echo
"Ich kenne dich nicht";
    }
?>

Dies liest sich zwar recht schön, "Wenn Name gleich Max, Müller oder Heinz ist führe die If-Bedingung aus", aber dies ist absolut falsch. Wenn man sowas schreibt ist diese Bedingung immer true.

PHP versucht hier die Bedingungen in true und false umzuwandeln, was ja auch normal ist. Doch PHP interpretiert "Müller" und "Heinz" als bool(true). Wann PHP einen String oder eine Zahl als true oder false interpretiert nehmen wir später durch. Somit steht dann da:

<?php
    
if ($name == "max" OR true OR true)
    
// ...
?>

Somit hat der Inhalt von $name keine Bedeutung, denn x OR true ist, laut Definition von einer OR-Verknüpfung und laut der dazugehörigen Wahrheitstabelle immer true. Also wird die If-Abfrage immer ausgeführt. Damit das Script richtig läuft muss man das Script wie folgt ändern.

<?php
    
if (("max"==$name) OR ("Müller"==$name) OR ("Heinz"==$name)) {
        echo
"Hi Admin";
    }
    else {
        echo
"Ich kenne dich nicht";
    }
?>

So ist das Script richtig und läuft auch so, wie es soll. Der If-Teil wird dann ausgeführt wenn der Inhalt von $name den Wert Max, Müller oder Heinz hat.

12. Warum die Symbole aus der Digitaltechnik

Ihr habt ja gesehen, dass hier auch auf die Zeichen der Verknüpfungen in der Digitaltechnik eingegangen worden ist. Dies hat 3 Gründe.

  1. Mit den Schaltzeichen könnt ihr die Funktionsweisen der Verknüpfungen besser verstehen und behalten. Reiner Text ist schwer zu verstehen und somit wird es auch noch schwieriger die Funktionsweisen zu verstehen. Dadurch müsst ihr oft nachschlagen welche Zeichen ihr benutzten müsst und wie sie funktionieren.

  2. Irgendwann müsst ihr eigene Bedingungen aufstellen. Dies geht am besten mit einem Blatt Papier und einen Bleistift. Denn man soll nicht immer sofort den Rechner anschmeißen und in die Tasten hauen. Auf dem Blatt könnt ihr dann die Bedingungen aufzeichnen und wenn die Verknüpfungen fertig sind, könnt ihr sie in euer PHP-Script übertragen.

  3. Irgendwann, früher oder später, werdet ihr in der Schule auch Digitaltechnik haben. Ihr habt dann einen Vorteil dass ihr einmal die Zeichen und die Funktionsweisen kennt. Und ihr wisst auch schon wie man bestimmte Verknüpfungen kombinieren muss, damit man bestimmte Bedingungen erhält.

13. Bestimmte Regeln der Verknüpfungen

Manche Kombinationen mit den Verknüpfungen werden, wenn man sie selbst erstellt hat, sehr kompliziert. Da möchte man sie doch gerne optimieren und verkleinern. Mit bestimmten Regeln ist dies auch möglich. Dies geht dann in etwa so wie das Ausmultiplizieren und Kürzen in der Mathematik. Diese Umformungen von Verknüpfungen und Kombinationen nennt man Boolesche Algebra.

// A und B sind Variablen in der Digitaltechnik, für
// die man dann true oder false einsetzt

true  OR   A -> true
false OR   A -> A
true  AND  A -> A
false AND  A -> false

// Laut den Definitionen und Wahrheitstabellen ist in einigen
// Fällen der Wert immer gleich, in den anderen Fällen
// von "A" abhängig

true == !(!true)   // So wie "Minus mal Minus ergibt Plus"

!(A AND B) == !A OR  !B
!(A OR  B) == !A AND !B

// Diese 2 Formen sind von einem Herr "De Morgan" erfunden worden
// Durchs ausprobieren sieht man, dass dies Stimmt

A AND !A -> false
A OR !A  -> true

(A AND !B) OR (A AND B) = A AND (!B OR B) = A AND true = A

// Hier kann man sozusagen das "A AND" aus beiden Ausdrücken
// Ausklammern und es bleibt !B OR B zurück. Dies
// ergibt dann immer true und "A AND true" wird zu A
// Den ganzen Ausdruck kann man sich dann ersparen und
// nur if($a) schreiben
        

Es gibt noch eine ganze Menge andere Gesetze und Techniken um solche Ausdrücke zu vereinfachen. Doch das braucht ihr 'eigentlich' gar nicht wissen. Ihr müsst nur wissen, dass man solche Ausdrücke auf eine bestimmte Art und Weise vereinfachen kann. Notfalls hilft ein Stift mit Blatt Papier.

Fragen zum aktuellen Thema

  1. Welche Logische Verknüpfungen/Operatoren gibt es und welche PHP Zeichen haben sie
  2. Was ergibt das: ((!true XOR true) AND !(true XOR false)) XOR (!(false XOR false) AND (true OR !true))
Welche Logische Verknüpfungen/Operatoren gibt es und welche PHP Zeichen haben sie

Es gibt 7 Logische Verknüpfungen.

  1. AND - Eine AND-Verknüpfung ist dann true, wenn beide Eingänge true sind. Das AND Zeichen in PHP ist das Wort AND oder auch zusätzlich die Zeichenfolge &&.

  2. OR - Eine OR-Verknüpfung ist dann true, wenn einer oder beide Eingänge true sind. Das OR Zeichen in PHP ist das Wort OR oder auch zusätzlich die Zeichenfolge ||.

  3. NOT - Der NOT-Operator invertiert die Eingabe bzw. dreht den Wert der Eingabe um. Aus true wird false und aus false wird true. In PHP ist der NOT-Operator ein !.

  4. NAND - Eine NAND-Verknüpfung ist dann true, wenn einer oder keine Eingänge true sind. In PHP gibt es kein Zeichen für eine NAND-Verknüpfung es musst aus AND und NOT zusammengebaut werden.

  5. NOR - Eine NOR-Verknüpfung ist dann true, wenn beide Eingänge false sind. In PHP gibt es kein Zeichen für eine NOR-Verknüpfung es musst aus OR und NOT zusammengebaut werden.

  6. XOR - Eine XOR-Verknüpfung ist dann true, wenn genau ein Eingang true ist. In PHP erstellt man eine XOR-Verknüpfung mit dem Wort XOR.

  7. XNOR - Eine XNOR-Verknüpfung ist dann true, wenn beide oder keine Eingänge true sind. In PHP muss man eine XNOR-Verknüpfung mit einem XOR und NOT zusammenbauen.

Hier ist eine kleine Übersicht der Verknüpfungen

Tab.:Die Wahrheitstabelle aller Verknüpfungen und Operatoren
A B AND OR NAND NOR XOR XNOR A für NOT NOT
0 0 0 0 1 1 0 1 0 1
0 1 0 1 1 0 1 0 1 0
1 0 0 1 1 0 1 0 - -
1 1 1 1 0 0 0 1 - -
Was ergibt das: ((!true XOR true) AND !(true XOR false)) XOR (!(false XOR false) AND (true OR !true))

Diese Verknüpfung ergibt true. Hier der Beweis:

x = ((!true XOR true) AND !(true XOR false)) XOR (!(false XOR false) AND (true OR !true))
x = ((false XOR true) AND !(true XOR false)) XOR (!(false XOR false) AND (true OR false))
x = (     true        AND !(     true     )) XOR (!(     false     ) AND      true      )
x = (     true        AND        false     ) XOR (      true         AND      true      )
x =                 false                    XOR                    true
x =                                         true
        

In der Digitaltechnik sehe die Schaltung so aus. Statt true und false werden hier die Zahlen 0 und 1 verwendet.

Die Digitalschaltung zur Aufgabe
Abb.: Die Digitalschaltung zur Aufgabe

Die Zahlen in den Klammern geben an, was für ein Ergebnis aus dem Ausgang vor dem Kringel rauskommt und was für ein Ergebnis am Eingang nach dem Kringel rauskommt.

Nach oben