![]() | HTMLWorld: Home | Hier werben | Impressum | |
|
|
|
|
|
|
|
PHP: Operatorenvon Andre Fritzsche Grundlegendes
|
| Rang | Operator | Richtung |
|---|---|---|
| 1. | (bool) (int) (float) (string) (array) (object) ! ~ ++ -- @ | rechts |
| 2. | * / % | links |
| 3. | - + . | links |
| 4. | << >> | links |
| 5. | > >= < <= | ohne |
| 6. | == != === | ohne |
| 7. | & | links |
| 8. | ^ | links |
| 9. | | | links |
| 10. | && | links |
| 11. | || | links |
| 12. | ? : | links |
| 13. | alle Zuweisungsoperatoren (= += -= *= /= .= ....) | links |
| 14. | and | links |
| 15. | xor | links |
| 16. | or | links |
Die Arithmetischen Operatoren sind diejenigen, die den Grundrechenarten entsprechen und wir auf jeden Fall noch aus der Schule kennen.
| Operator | Symbol | Beispiel | Funktionsweise |
|---|---|---|---|
| Addition | + | $a + $b | addiert beide Werte |
| Subtraktion | - | $a - $b | subtrahiert rechten Wert vom linken |
| Multiplikation | * | $a * $b | multipliziert beide Werte |
| Division | / | $a / $b | dividiert linken Wert durch rechten (Ergebnis ist immer eine Gleitkommazahl) |
| Modulodivision | % | $a % $b | ergibt Rest der Ganzzahlendivision des linken Werts durch den rechten |
Unter dem Begriff logische Operatoren fasst man all jene zusammen, die mit Booleeschen Werten operieren und diese auch als Ergebnis liefern. Davon werden uns insgesamt 7 zur Verfügung gestellt, wovon allerdings jeweils drei das gleiche Ergebnis liefern und sich nur in der Rangfolge unterscheiden.
| Operator | Symbol | Beispiel | Funktionsweise |
|---|---|---|---|
| Und | and, && | $a and $b, $a && $b | true, wenn beide Werte true sind |
| Oder | or, || | $a or $b, $a || $b | true, wenn mindestens ein Wert true ist |
| Exklusiv-Oder | xor, ^ | $a xor $b, $a ^ $b | true, wenn beide Werte unterschiedlich sind |
| Nicht | ! | ! $a | true, wenn der Wert false ist (Negation) |
Bitweise Operatoren sind diejenigen, die auf die einzelnen Bits der Werte angewandt werden und somit eine Manipulation der einzelnen binären Stellen eines skalaren Datentyps erlaubt. In PHP gibt es 6 davon:
| Operator | Symbol | Beispiel | Funktionsweise |
|---|---|---|---|
| Und | & | 101 & 011 = 001 | ergibt 1, wenn beide Bits 1 sind |
| Oder | | | 101 | 011 = 111 | ergibt 1, wenn eines der beiden Bits 1 ist |
| Exklusiv-Oder | ^ | 110 ^ 011 = 101 | ergibt 1, wenn beide Bits unterschiedlich sind |
| Nicht | ~ | ~0101 = 1010 | ergibt 1, wenn das Bit 0 ist (Negation) |
| Rechtsverschiebung | >> | 0110 >> 1 = 0011 | verschiebt die Bits um die angegebene Anzahl nach rechts |
| Linksverschiebung | << | 0110 << 2 = 11000 | verschiebt die Bits um die angegebene Anzahl nach links |
Wendet man diese Operatoren auf eine Zeichenketten an, so werden die Operationen mit den stellenentsprechenden einzelnen Zeichen durchgeführt.
echo ord("ab")," xor ",ord("z")," ergibt ",ord("ab" ^ "z");
Vergleichsoperatoren werden, wie der Name schon sagt, für Vergleiche verwendet. Das Ergebnis einer Vergleichsoperation ist immer ein boolescher Wert. In PHP gibt es insgesamt 9.
| Operator | Symbol | Beispiel | Funktionsweise |
|---|---|---|---|
| Gleichheit | == | $a==$b | true, wenn beide Werte gleich sind |
| Ungleichheit | != | $a!=12 | true, wenn beide Werte ungleich sind |
| Gleichheit, typgenau | === | $a===$b | true, wenn beide Werte und Typen gleich sind |
| Ungleichheit, typgenau | !== | $a!==$b | true, wenn beide Werte oder Typen ungleich sind |
| Größer als | > | $a>12 | true, wenn linker Wert größer als der rechte ist |
| Kleiner als | < | $a<$c | true, wenn linker Wert kleiner als rechter ist |
| Größer gleich | >= | $a>=$b | true, wenn linker Wert größer oder gleich dem rechten ist |
| Kleiner gleich | <= | $a<=1 | true, wenn linker Wert kleiner oder gleich dem rechten ist |
Während in Pascal nur ein einziger Zuweisungsoperator, und zwar das ":=" existiert, kann da PHP , wie C auch, mit einigem mehr aufwarten.
| Operator | Symbol | Beispiel | Funktionsweise |
|---|---|---|---|
| Zuweisung | = | $a=3 | linke Variable erhält den Wert der rechten Seite |
| Additive Zuweisung | += | $a+=5 | linke Variable wird um den Wert der rechten Seite erhöht |
| Subtraktive Zuweisung | -= | $a-=$b | linke Variable wird um den Wert der rechten Seite dekrementiert |
| Multiplikationszuweisung | *= | $a*=$b | linke Variable wird mit dem rechten Wert multipliziert |
| Divisionszuweisung | /= | $a/=12 | linke Variable wird durch den Wert der rechten Seite dividiert |
| Modulozuweisung | %= | $a%=$c | mit linker Variable wird eine Moduladivision durch den rechten Wert durchgeführt |
| Bitweise Verknüpfungen und Zuweisungen | &=, |=, ^= | $a&=$b | bitweises Und, Oder, Exklusiv-Oder der linken Variablen mit dem rechten Wert |
| Bitweise Verschiebungen und Zuweisung | <<=, >>= | $a<<=1 | bitweise Verschiebung nach rechts bzw. links der Bits der linken Variablen um den Wert der rechten Seite |
| Logische Verknüpfungen und Zuweisungen | &&=, ||= | $a&&=$b | logische Verknüpfung der linken mit der rechten Seite, wobei das Ergebnis der Variable links zugewiesen wird |
| Stringverkettung | .= | $a.=".txt" | der Variablen links wird der Wert rechts angehängt |
Der Wert eines Zuweisungsausdrucks ist der zugewiesene Wert, dass heißt das der Wert einer Zuweisung $a+=5, wenn $a=4 war, 9 beträgt. Hierbei ist zu beachten, dass die Auswertung eines Ausdrucks immer von rechts nach links erfolgt!
$a=($b=3)+4; //$a hat jetzt den Wert 7, $b den Wert 3
$a+=$b+=1; //$a ist jetzt 11 und $b gleich 4
Wie in C auch gibt es in PHP diese Operatoren in den Varianten Prä~ und Post~. Wie man sich sicherlich denken kann, werden Präoperatoren zuerst und Postoperatoren danach notiert und auch ausgeführt.
$a=1;
$a++; //Postinkrement
--$a; //Prädekrement
Beim Präoperator wird zuerst der Operator ausgeführt und dann der Wert zurückgegeben, beim Post-operator umgekehrt.
$a=1; //a=1
$b=$a++; //b=1, a=2
$c=++$a; //c=3, a=3
| Operator | Symbol | Beispiel | Funktionsweise |
|---|---|---|---|
| Präinkrement | ++ | ++$a | Erhöht erst, liefert dann den Wert |
| Prädekrement | -- | --$a | Verringert erst, liefert dann den Wert |
| Postinkrement | ++ | $a++ | Liefert den Wert, erhöht dann |
| Postdekrement | -- | $a-- | Liefert dan Wert, verringert dann |
PHP kennt insgesamt drei Zeichenkettenoperatoren, wobei einer bereits im Abschnitt Zuweisungsoperatoren behandelt worden ist, und der andere im Abschnitt Arrayoperatoren noch behandelt wird.
| Operator | Symbol | Beispiel | Funktionsweise |
|---|---|---|---|
| Verkettung | . | $c=$a.$b | verbindet zwei Zeichenketten miteinander |
| Verkettung und Zuweisung | .= | $a.=$b | hängt die Zeichenkette auf der rechten Seite an die linke an |
| Zeichenindizierung | [X] | $a[2] | gibt das Zeichen an entsprechender Position der Zeichenkette zurück |
$text="Mein";
echo $text,"\n";
$text.=" Text ist vom Typ ".gettype($text);
echo $text,"\n";
$text[0]="K";
echo $text,"\n";
Der Indexoperator [] behandelt die Zeichenkette wie ein Array und erlaubt somit einen Zugriff auf die Zeichen an den einzelnen Stellen der Kette.
Dieser Abschnitt fällt relativ kurz aus, da PHP nur zwei Array-Operatoren kennt: die Array-Verkettung und den Index-Operator.
| Operator | Symbol | Beispiel | Funktionsweise |
|---|---|---|---|
| Verkettung | + | $c=$a+$b | verbindet zwei Arrays miteinander |
| Indizierung | [] | $a['name'] | liefert das Element mit dem angegebenen Schlüssel |
Beim Verketten von Arrays ist zu beachten, dass gleiche Schlüssel nicht überschrieben werden, wobei das linke Array immer Vorrang hat.
$a=array('name'=>'Fred','alter'=>30,'plz'=>93221);
$b=array('name'=>'Bernd','ort'=>'Brügge');
$c=$a+$b;
print_r($c);
Der Indexoperator ist ebenfalls schnell erklärt: in den eckigen Klammer wird der Schlüssel des gewünschten Elements angegeben. Indiziert man auf diese Weise einen Schlüssel, der im Array noch nicht existiert, so wird dieses Element neu angelegt.
//assoziatives Array
$a=array('name'=>'Fred','alter'=>30,'plz'=>93221);
//Liste
$b=array(1234,5678,91011);
echo $b[2],"\n";
//gibt letztes Element von $b aus
$b[5]=$a;
//hängt an Index 5 das Array $a an
$b[2]=$a['name'];
//Index 2 von $b ist jetzt das Element 'name' von $a
print_r($b);
Ein weitere Operator ist das @-Zeichen, der Fehleroperator. Stellt man diesen einem PHP-Befehl voran, so werden alle von diesem Aufruf erzeugten Fehlermeldungen unterdrückt.
phpinfo(TEST); //erzeugt Warnung, die Konstante TEST ist unbekannt
@phpinfo(TEST); //nichts passiert
|
|
| « zurück | weiter » |
| Achtung: Seite ist nicht mehr gültig von Sir Quicksand | |
| Undefined variable - bitte um Hilfe von A235 | |
| Navigation Link soll ausgewählt bleiben von Maxxon | |
| Zeitliche Zugriffsbegrenzung auf eine Webseite von Krueger008 | |
| Suche in einer Spalte Datenbank mit Ausgabe als Link von xmen | |
| php frage von cyborg | |
| Welchen Befehl? von duesseltalker | |
| Mail vom Kontaktformular ist leer von promo | |
| Formular wird alphabetisch sortiert, statt logisch von gooddog | |
| Bekomme Validierung von Style.css.php nicht in den Griff !? von OneMoreMedia |
| Achtung: Seite ist nicht mehr gültig von Sir Quicksand | ||
| Undefined variable - bitte um Hilfe von A235 | ||
| Navigation Link soll ausgewählt bleiben von Maxxon | ||
| Zeitliche Zugriffsbegrenzung auf eine Webseite von Krueger008 | ||
| Suche in einer Spalte Datenbank mit Ausgabe als Link von xmen | ||
| php frage von cyborg | ||
| Welchen Befehl? von duesseltalker | ||
| Mail vom Kontaktformular ist leer von promo | ||
| Formular wird alphabetisch sortiert, statt logisch von gooddog | ||
| Bekomme Validierung von Style.css.php nicht in den Griff !? von OneMoreMedia | ||
| Seiteninhalt über ID's ändern ? von Alex... | ||
| Custom tailor made sites to suit your business requirement. von acumencs | ||
| Struktur von php-Dateien in wordpress von Iago | ||
| Extension:LDAP Authentication von sternkopf | ||
| Warnung bzw. Fehlermeldung von rallaf |
|
|
|
|
|
|
Startseite | Kontakt | Über uns | Impressum | Datenschutz | Was sind das für grüne Links? Unsere Angebote: HTML World | Downloads World | IT-News World | HSDPA World | Traveling World | Weather World | HSDPA | Internet Stick |