In diesem Kapitel besprechen wir die Verwendung verschiedener Operatoren in PHP.
In PHP wird der Zuweisungsoperator = verwendet, um einer Variablen einen Wert zuzuweisen.
In PHP wird der arithmetische Operator + verwendet, um Werte zu addieren.
Operator | Name | beschreiben | Beispiel | Ergebnis |
---|---|---|---|---|
x + y | hinzufügen | Summe von x und y | 2+2 | 4 |
x-y | reduzieren | Unterschied zwischen x und y | 5-2 | 3 |
x*y | nehmen | Produkt von x und y | 5*2 | 10 |
x/y | entfernen | Quotient aus x und y | 15/5 | 3 |
x % y | Modulo (Rest der Division) | Rest, wenn x durch y geteilt wird | 5 % 210 % 810 % 2 | 120 |
-X | negieren | x negieren | -2 | -2 |
a.b | gegenüberstellen | Verketten Sie zwei Zeichenfolgen | „Hallo“ . „Ha“ | HiHa |
Die folgenden Beispiele veranschaulichen unterschiedliche Ergebnisse mit unterschiedlichen arithmetischen Operatoren:
<?php $x = 10 ; $ y = 6 ; ( $x + $y ) ; // Ausgabe 16 Echo ' <br> ' ; // Zeilenumbruch Echo ( $x - $y ) ; // Ausgabe 4 Echo ' <br> ' ; // Zeilenumbruch Echo ( $x * $y ) ; // Ausgabe 60 Echo ' <br> ' ; // Zeilenumbruch Echo ( $x / $y ) ; // Ausgabe 1.6666666666667 Echo ' <br> ' ; // Zeilenumbruch Echo ( $x % $y ) ; // Ausgabe 4 Echo ' <br> ' ; // Zeilenumbruch echo - $x ? >
Die PHP7+-Version verfügt über einen neuen ganzzahligen Divisionsoperator intdiv() , Anwendungsbeispiele:
<?php var_dump ( intdiv ( 10 , 3 ) ) ;
Das obige Beispiel gibt Folgendes aus:
int(3)
In PHP ist der grundlegende Zuweisungsoperator „=". Das bedeutet, dass der linke Operand auf den Wert des rechten Ausdrucks gesetzt wird. Das heißt, der Wert von „$x = 5“ ist 5.
Operator | Äquivalent zu | beschreiben |
---|---|---|
x = y | x = y | Der linke Operand wird auf den Wert des rechten Ausdrucks gesetzt |
x += y | x = x + y | hinzufügen |
x -= y | x = x - y | reduzieren |
x*=y | x = x * y | nehmen |
x /= y | x = x / y | entfernen |
x%=y | x = x % y | Modulo (Rest der Division) |
a .= b | a = a . b | Verketten Sie zwei Zeichenfolgen |
Die folgenden Beispiele veranschaulichen unterschiedliche Ergebnisse mit unterschiedlichen Zuweisungsoperatoren:
<?php $x = 10 ; echo $x ; // Ausgabe 10 $y = 20 ; $y + = 100 ; $y ; // Ausgabe 120 $z = 50 ; $z - = 25 ; $z ; // Ausgabe 25 $i = 5 ; $i * = 6 ; $i ; // Ausgabe 30 $j = 10 ; $j / = 5 ; $j ; // Ausgabe 2 $k = 15 ; $k % = 4 ; $k ; // Ausgabe 3 ?>
Die folgenden Beispiele veranschaulichen das gleiche Ergebnis mit unterschiedlichen String-Operatoren:
<?php $ a = " Hallo " ; $ b = $ a $b ; // Ausgabe Hallo Welt! $x = „ Hallo “ ; $x . = „ Welt! “ ; $x ; // Ausgabe Hallo Welt! ?>
Operator | Name | beschreiben |
---|---|---|
++x | Vorinkrement | Addiere 1 zu x und gib x zurück |
x++ | Post-Inkrement | Geben Sie x zurück und addieren Sie dann 1 zu x |
--X | Vordekrement | Dekrementieren Sie x um 1 und geben Sie dann x zurück |
X -- | Danach abnehmend | Gibt x zurück und verringert dann x um 1 |
Das folgende Beispiel zeigt die Ergebnisse der Verwendung der Inkrementierungs-/Dekrementierungsoperatoren:
<?php $x = 10 ; echo ++ $x ; // Ausgabe 11 $y = 10 ; Echo $y ++; // Ausgabe 10 $z = 5 ; echo -- $z ; // Ausgabe 4 $i = 5 ; echo $i --; // Ausgabe 5 ?>
Mit Vergleichsoperatoren können Sie zwei Werte vergleichen:
Operator | Name | beschreiben | Beispiel |
---|---|---|---|
x == y | gleich | Gibt true zurück, wenn x gleich y ist | 5==8 gibt false zurück |
x === y | absolut gleich | Gibt „true“ zurück, wenn x gleich y ist und sie vom gleichen Typ sind | 5==="5" gibt false zurück |
x != y | nicht gleich | Gibt true zurück, wenn x nicht gleich y ist | 5!=8 gibt true zurück |
x <> y | nicht gleich | Gibt true zurück, wenn x nicht gleich y ist | 5<>8 gibt true zurück |
x !== y | Definitiv nicht gleich | Gibt „true“ zurück, wenn x nicht gleich y ist oder sie nicht vom gleichen Typ sind | 5!=="5" gibt true zurück |
x > y | größer als | Gibt „true“ zurück, wenn x größer als y ist | 5>8 gibt false zurück |
x < y | weniger als | Gibt true zurück, wenn x kleiner als y ist | 5<8 gibt true zurück |
x >= y | Größer oder gleich | Gibt „true“ zurück, wenn x größer oder gleich y ist | 5>=8 gibt false zurück |
x <= y | kleiner oder gleich | Gibt „true“ zurück, wenn x kleiner oder gleich y ist | 5<=8 gibt true zurück |
Die folgenden Beispiele veranschaulichen unterschiedliche Ergebnisse bei Verwendung einiger Vergleichsoperatoren:
<?php $x = 100 ; $y = " 100 " ; var_dump ( $ x == $y ) ; " <br> " ; var_dump ( $x === $ y ) ; " <br> " ; var_dump ( $x ! = $y ) ; " <br> " ; var_dump ( $x ! == $y ) ; " <br> " ; $ a = 50 ; $ b = 90 ;" <br> " ; var_dump ( $a < $ b ) ;
Operator | Name | beschreiben | Beispiel |
---|---|---|---|
x und y | Und | Gibt „true“ zurück, wenn sowohl x als auch y wahr sind | x=6y=3(x < 10 und y > 1) gibt true zurück |
x oder y | oder | Gibt „true“ zurück, wenn mindestens eines von x und y wahr ist | x=6y=3(x==6 oder y==5) gibt true zurück |
x x oder y | XOR | Wenn nur eines von x und y wahr ist, dann wird „true“ zurückgegeben | x=6y=3(x==6 xor y==3) gibt false zurück |
x && y | Und | Gibt „true“ zurück, wenn sowohl x als auch y wahr sind | x=6y=3(x < 10 && y > 1) gibt true zurück |
x || | oder | Gibt „true“ zurück, wenn mindestens eines von x und y wahr ist | x=6y=3(x==5 || y==5) gibt false zurück |
!X | NEIN | Wenn x nicht wahr ist, gib true zurück | x=6y=3!(x==y) gibt true zurück |
Operator | Name | beschreiben |
---|---|---|
x + y | versammeln | die Menge von x und y |
x == y | gleich | Gibt „true“ zurück, wenn x und y dasselbe Schlüssel/Wert-Paar haben |
x === y | Gleichwertigkeit | Gibt „true“ zurück, wenn x und y dieselben Schlüssel/Wert-Paare in derselben Reihenfolge und demselben Typ haben |
x != y | Ungleich | Gibt true zurück, wenn x nicht gleich y ist |
x <> y | Ungleich | Gibt true zurück, wenn x nicht gleich y ist |
x !== y | Nicht identisch | Gibt true zurück, wenn x nicht gleich y ist |
Die folgenden Beispiele veranschaulichen unterschiedliche Ergebnisse bei Verwendung einiger Array-Operatoren:
<?php $x = Array ( „ a “ => „ rot “ , „ b “ => „ grün “ ) ; $ y = Array ( „ c “ => „ blau “ , „ d “ => „ gelb “ ) ; = $x + $y ; // $x- und $y-Arrays kombinieren var_dump ( $ z ) ; var_dump ( $ x == $ y ) ; var_dump ( $ x < > $ y ) ; x !== $y ) ? >
Ein weiterer bedingter Operator ist der „?:“ (oder ternäre) Operator.
(Ausdruck1) ? (Ausdruck2) : (Ausdruck3)
Der Wert, wenn expr1 als TRUE ausgewertet wird, ist expr2, und wenn expr1 als FALSE ausgewertet wird, ist der Wert expr3.
Ab PHP 5.3 kann der mittlere Teil des ternären Operators weggelassen werden. Der Ausdruck expr1 ?: expr3 gibt expr1 zurück, wenn expr1 TRUE ergibt, andernfalls expr3.
Im folgenden Beispiel wird festgestellt, dass die $_GET-Anfrage den Benutzerwert enthält. Wenn ja, wird $_GET['user'] zurückgegeben, andernfalls wird niemand zurückgegeben:
<?php $test = ' Coder-Tutorial ' ; // Normale Schreibmethode $username = isset ( $test ) ? $ test : ' nobody ' ; $username , PHP_EOL ; // Schreibmethode für PHP 5.3+ $username = $test ? : ' nobody ' ; $Benutzername , PHP_EOL ? >
Tutorials für Programmierer. Tutorials für Programmierer
Hinweis: PHP_EOL ist ein Zeilenumbruchzeichen, das mit größeren Plattformen kompatibel ist.
In der PHP7+-Version gibt es einen zusätzlichen NULL- ??
. Das Beispiel lautet wie folgt:
<?php // Wenn $_GET['user'] nicht existiert, gebe 'nobody' zurück, andernfalls den Wert von $_GET['user'] zurückgeben $username = $_GET [ ' user ' ] ?? ' nobody ' ; // Ähnlicher ternärer Operator $username = isset ( $_GET [ ' user ' ] ) ? $_GET [ ' user ' ] : ' nobody ' ? >
PHP7+ unterstützt kombinierte Vergleichsoperatoren, Beispiele sind wie folgt:
<?php // Integer-Typ Echo 1 <=> 1 ; // 0 Echo 1 <=> 2 ; // -1 Echo 2 <=> 1 ; // 1 // Gleitkommatyp Echo 1 , 5 <=> 1 ,5 ; // 0 Echo 1 , 5 <=> 2 ,5 ; // -1 Echo 2 , 5 <=> 1 , 5 ; // 1 // String Echo „ a “ <=> „ a “ // 0 Echo " a " <=> " b " ; // -1 Echo „ b “ <=> „ a “ // 1 ?>
In der folgenden Tabelle sind die Operatoren von der höchsten zur niedrigsten Priorität aufgeführt. Operatoren in derselben Zeile haben dieselbe Priorität und die Richtung, in der sie kombiniert werden, bestimmt die Reihenfolge der Auswertung.
Hinweis : Links = von links nach rechts, rechts = von rechts nach links.
Bindungsrichtung | Operator | Weitere Informationen |
---|---|---|
keiner | neu klonen | Klon und neu |
Links | [ | array() |
Rechts | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | Typen und Inkrement/Dekrement |
keiner | Instanz von | Typ |
Rechts | ! | Logische Operatoren |
Links | */% | Arithmetische Operatoren |
Links | + – . | Arithmetische und String-Operatoren |
Links | << >> | Bitoperatoren |
keiner | == != === !== <> | Vergleichsoperator |
Links | & | Bitoperatoren und Referenzen |
Links | ^ | Bitoperatoren |
Links | | | Bitoperatoren |
Links | && | Logische Operatoren |
Links | || | Logische Operatoren |
Links | ? : | ternärer Operator |
Rechts | = += -= *= /= .= %= &= |= ^= <<= >>= => | Zuweisungsoperator |
Links | Und | Logische Operatoren |
Links | xor | Logische Operatoren |
Links | oder | Logische Operatoren |
Links | , | An vielen Orten verwendet |
In der Operatorpriorität or, ||, && und und sind alle logische Operatoren mit der gleichen Wirkung, aber ihre Prioritäten sind unterschiedlich.
<?php // Priorität: && > = > und // Priorität: ||. > = > oder $a = 3 ; $b = false ; $c = $a oder $b ; var_dump ( $c ) ; // $c ist hier der int-Wert 3, nicht der boolesche Wert true $d = $a ||. $b ; var_dump ( $d ) ; // $d hier ist der boolesche Wert wahr ?>
Das Ausgabeergebnis des obigen Beispiels ist:
int(3)bool(true)
Wir geben die Reihenfolge der Operationen durch die Paarung von Klammern klar an, anstatt uns auf Operatorpriorität und Assoziativität zu verlassen, was normalerweise die Lesbarkeit des Codes verbessern kann.
<?php // Klammerprioritätsoperation $a = 1 ; $ b = 2 ; $ d = $ a + $ b * $ c ; $d ; Echo " n " ; $e = ( $a + $b ) * $c ; // Klammern verwenden Echo $e ; echo " n " ; >
Das Ausgabeergebnis des obigen Beispiels ist:
79