HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Impressum |
 

 
 

Anzeige 
 
               Forum
 
 
HTMLWorld » PHP » Operatoren

PHP: Operatoren

von Andre Fritzsche

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.

Anzeige

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:

RangOperatorRichtung
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.andlinks
15.xorlinks
16.orlinks

Arithmetische Operatoren  nach oben

Die Arithmetischen Operatoren sind diejenigen, die den Grundrechenarten entsprechen und wir auf jeden Fall noch aus der Schule kennen.

OperatorSymbolBeispielFunktionsweise
Addition+$a + $baddiert beide Werte
Subtraktion-$a - $bsubtrahiert rechten Wert vom linken
Multiplikation*$a * $bmultipliziert beide Werte
Division/$a / $bdividiert linken Wert durch rechten (Ergebnis ist immer eine Gleitkommazahl)
Modulodivision%$a % $bergibt 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.

OperatorSymbolBeispielFunktionsweise
Undand, &&$a and $b, $a && $btrue, wenn beide Werte true sind
Oderor, ||$a or $b, $a || $btrue, wenn mindestens ein Wert true ist
Exklusiv-Oderxor, ^$a xor $b, $a ^ $btrue, wenn beide Werte unterschiedlich sind
Nicht!! $atrue, 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:

OperatorSymbolBeispielFunktionsweise
Und&101 & 011 = 001ergibt 1, wenn beide Bits 1 sind
Oder|101 | 011 = 111ergibt 1, wenn eines der beiden Bits 1 ist
Exklusiv-Oder^110 ^ 011 = 101ergibt 1, wenn beide Bits unterschiedlich sind
Nicht~~0101 = 1010ergibt 1, wenn das Bit 0 ist (Negation)
Rechtsverschiebung>>0110 >> 1 = 0011verschiebt die Bits um die angegebene Anzahl nach rechts
Linksverschiebung<<0110 << 2 = 11000verschiebt 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.

OperatorSymbolBeispielFunktionsweise
Gleichheit==$a==$btrue, wenn beide Werte gleich sind
Ungleichheit!=$a!=12true, wenn beide Werte ungleich sind
Gleichheit, typgenau===$a===$btrue, wenn beide Werte und Typen gleich sind
Ungleichheit, typgenau!==$a!==$btrue, wenn beide Werte oder Typen ungleich sind
Größer als>$a>12true, wenn linker Wert größer als der rechte ist
Kleiner als<$a<$ctrue, wenn linker Wert kleiner als rechter ist
Größer gleich>=$a>=$btrue, wenn linker Wert größer oder gleich dem rechten ist
Kleiner gleich<=$a<=1true, 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.

OperatorSymbolBeispielFunktionsweise
Zuweisung=$a=3linke Variable erhält den Wert der rechten Seite
Additive Zuweisung+=$a+=5linke Variable wird um den Wert der rechten Seite erhöht
Subtraktive Zuweisung-=$a-=$blinke Variable wird um den Wert der rechten Seite dekrementiert
Multiplikationszuweisung*=$a*=$blinke Variable wird mit dem rechten Wert multipliziert
Divisionszuweisung/=$a/=12linke Variable wird durch den Wert der rechten Seite dividiert
Modulozuweisung%=$a%=$cmit linker Variable wird eine Moduladivision durch den rechten Wert durchgeführt
Bitweise Verknüpfungen und Zuweisungen&=, |=, ^=$a&=$bbitweises Und, Oder, Exklusiv-Oder der linken Variablen mit dem rechten Wert
Bitweise Verschiebungen und Zuweisung<<=, >>=$a<<=1bitweise Verschiebung nach rechts bzw. links der Bits der linken Variablen um den Wert der rechten Seite
Logische Verknüpfungen und Zuweisungen&&=, ||=$a&&=$blogische 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

OperatorSymbolBeispielFunktionsweise
Präinkrement++++$aErhöht erst, liefert dann den Wert
Prädekrement----$aVerringert 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.

OperatorSymbolBeispielFunktionsweise
Verkettung.$c=$a.$bverbindet zwei Zeichenketten miteinander
Verkettung und Zuweisung.=$a.=$bhä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.

OperatorSymbolBeispielFunktionsweise
Verkettung+$c=$a+$bverbindet 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



« zurück weiter »
Bewerten

 

PHP

.Autor:Jan Winkler.
. Bewertung:
PHP: Operatoren HTMLWorld
(5/5 bei 1 Votes)
.
. Community: 586 Beiträge im PHP Forum .

Navigation


 
     
 

Anzeige