Operatoren in PHP

Was wäre die Informatik ohne Operatoren? Eigentlich nicht vorstellbar, denn dann hätten Programme genauso viel Interaktivität wie ein Buch. Man kann die Ausgaben lesen und das war's.

Grundlegendes  nach oben

Genau wie in der Mathematik gibt es auch bei den Operatoren eine Rangfolge, die die Reihenfolge der Ausf√ľhrung der Operatoren mit ihren Parametern bzw. Ausdr√ľcken festlegt.

$a=1+2*3;
$b=(1+2)*3;
echo¬†$a,”¬†<->¬†“,$b;¬†//Ausgabe:¬†‘7¬†<->¬†9′

Die Rangfolge der in PHP verf√ľgbaren Operatoren ist folgende:

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

Arithmetische Operatoren  nach oben

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

Logische Operatoren  nach oben

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  nach oben

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  nach oben

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

Zuweisungsoperatoren  nach oben

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

Inkrement- / Dekrementoperatoren  nach oben

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

Zeichenkettenoperatoren  nach oben

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.

Arrayoperatoren  nach oben

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);

Fehleroperator  nach oben

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

Weiterlesen

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>