PHP Operatoren


In diesem Kapitel werden wir die Anwendung verschiedener Operatoren in PHP besprechen.

In PHP wird der Zuweisungsoperator=verwendet, um Variablen Werte zuzuweisen.

In PHP werden die arithmetischen Operatoren+verwendet, um Werte zu addieren.


PHP Arithmetische Operatoren

Operator Name Beschreibung Beispiel Ergebnis
x + y hinzufügen Summe von x und y 2 + 2 4
x - y subtrahieren Differenz von x und y 5 - 2 3
x * y multiply Produkt von x und y 5 * 2 10
x / y divide Quotient von x und y 15 / 5 3
x % y Modulus (Rest der Division) Rest von x geteilt durch y 5 % 2
10 % 8
10 % 2
1
2
0
-x Negativ setzen Das entgegengesetzte Vorzeichen von x nehmen
<?php
$x = 2;
echo -$x;
?>
-2
~x Bitweises NICHT

Invertiere x, indem eine bitweise NICHT-Operation auf seine Binärbits angewendet wird. Die Regeln sind:

~1=-2;   
~0=-1;
<?php
$x = 2;
echo ~$x;
?>
-3
a . b Verkettung Verkettet zwei Zeichenketten "Hi" . "Ha" HiHa

Die folgenden Beispiele zeigen die unterschiedlichen Ergebnisse, die mit verschiedenen arithmetischen Operatoren erzielt werden:

Beispiel

<?php $x=10; $y=6; echo ($x + $y); //Gibt 16 aus echo '<br>'; //Neue Zeile echo ($x - $y); //Gibt 4 aus echo '<br>'; //Zeilenumbruch echo ($x * $y); //Gibt 60 aus echo '<br>'; //Zeilenumbruch echo ($x / $y); //Gibt 1.6666666666667 aus echo '<br>'; //Zeilenumbruch echo ($x % $y); //Gibt 4 aus echo '<br>'; //Zeilenumbruch echo -$x; ?>

Selbst ausprobieren »

Die PHP7+-Version fügt einen Ganzzahldivisionsoperator hinzuintdiv(), diese Funktion gibt den Wert des ersten Parameters dividiert durch den zweiten Parameter zurück und rundet ihn ab (floor). Beispiel:

Beispiel

<?php var_dump(intdiv(10, 3)); ?>

Das obige Beispiel gibt Folgendes aus:

int(3)

PHP-Zuweisungsoperatoren

In PHP ist der grundlegende Zuweisungsoperator=. Das bedeutet, dass der linke Operand auf den Wert des Ausdrucks auf der rechten Seite gesetzt wird. Das heißt,$x = 5der Wert ist 5.

Operator Äquivalent zu Beschreibung
x = y x = y Der linke Operand wird auf den Wert des Ausdrucks auf der rechten Seite gesetzt
x += y x = x + y hinzufügen
x -= y x = x - y subtrahieren
x *= y x = x * y multiply
x /= y x = x / y divide
x %= y x = x % y Modulus (Rest der Division)
a .= b a = a . b Verkettet zwei Zeichenketten

Die folgenden Beispiele zeigen die unterschiedlichen Ergebnisse, die mit verschiedenen Zuweisungsoperatoren erzielt werden:

Beispiel

<?php $x=10; echo $x; //Gibt 10 aus $y=20; $y += 100; echo $y; //Gibt 120 aus $z=50; $z -= 25; echo $z; //Gibt 25 aus $i=5; $i *= 6; echo $i; //Gibt 30 aus $j=10; $j /= 5; echo $j; //Gibt 2 aus $k=15; $k %= 4; echo $k; //Gibt 3 aus ?>

Selbst ausprobieren »

Die folgenden Beispiele zeigen dieselben Ergebnisse, die mit verschiedenen String-Operatoren erzielt werden:

Beispiel

<?php $a = "Hello"; $b = $a . " world!"; echo $b; //Gibt Hello world! aus $x="Hello"; $x .= " world!"; echo $x; //Gibt Hello world! aus ?>

Selbst ausprobieren »

PHP-Inkrement-/Dekrement-Operatoren

Operator Name Beschreibung
++ x Prä-Inkrement Addiert 1 zu x und gibt dann x zurück
x ++ Post-Inkrement Gibt x zurück und addiert dann 1 zu x
-- x Prä-Dekrement Subtrahiert 1 von x und gibt dann x zurück
x -- Post-Dekrement Gibt x zurück und subtrahiert dann 1 von x

Die folgenden Beispiele zeigen die Ergebnisse, die mit Inkrement-/Dekrement-Operatoren erzielt werden:

Beispiel

<?php $x=10; echo ++$x; //Gibt 11 aus $y=10; echo $y++; //Gibt 10 aus $z=5; echo --$z; //Gibt 4 aus $i=5; echo $i--; //Gibt 5 aus ?>

Selbst ausprobieren »

PHP-Vergleichsoperatoren

Mit Vergleichsoperatoren können Sie zwei Werte vergleichen:

Operator Name Beschreibung Beispiel
x == y Equal Gibt true zurück, wenn x gleich y ist 5==8 gibt false zurück
x === y Identisch Gibt true zurück, wenn x gleich y ist und sie denselben Typ haben 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 Nicht identisch Gibt true zurück, wenn x nicht gleich y ist oder wenn sie nicht denselben Typ haben 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 Kleiner als Gibt true zurück, wenn x kleiner als y ist 5<8 gibt true zurück
x >= y Größer als oder gleich Gibt true zurück, wenn x größer oder gleich y ist 5>=8 gibt false zurück
x <= y Kleiner als oder gleich Gibt true zurück, wenn x kleiner oder gleich y ist 5<=8 gibt true zurück

Die folgenden Beispiele zeigen die unterschiedlichen Ergebnisse, die mit einigen Vergleichsoperatoren erzielt werden:

Beispiel

<?php $x=100; $y="100"; var_dump($x == $y); echo "<br>"; var_dump($x === $y); echo "<br>"; var_dump($x != $y); echo "<br>"; var_dump($x !== $y); echo "<br>"; $a=50; $b=90; var_dump($a > $b); echo "<br>"; var_dump($a < $b); ?>

Selbst ausprobieren »

Logische Operatoren in PHP

Operator Name Beschreibung Beispiel
x and y und Gibt true zurück, wenn sowohl x als auch y true sind x=6
y=3
(x < 10 and y > 1) gibt true zurück
x or y oder Gibt true zurück, wenn mindestens eines von x und y true ist x=6
y=3
(x==6 or y==5) gibt true zurück
x xor y Xor Gibt true zurück, wenn genau eines von x und y true ist x=6
y=3
(x==6 xor y==3) gibt false zurück
x && y und Gibt true zurück, wenn sowohl x als auch y true sind x=6
y=3
(x < 10 && y > 1) gibt true zurück
x || y oder Gibt true zurück, wenn mindestens eines von x und y true ist x=6
y=3
(x==5 || y==5) gibt false zurück
! x not Gibt true zurück, wenn x nicht true ist x=6
y=3
!(x==y) gibt true zurück

PHP-Array-Operatoren

Operator Name Beschreibung
x + y Vereinigung Vereinigung von x und y
x == y Gleichheit Gibt true zurück, wenn x und y die gleichen Schlüssel/Wert-Paare haben
x === y Identität Gibt true zurück, wenn x und y dieselben Schlüssel/Wert-Paare in derselben Reihenfolge und vom selben Typ haben
x != y Ungleichheit Gibt true zurück, wenn x nicht gleich y ist
x <> y Ungleichheit Gibt true zurück, wenn x nicht gleich y ist
x !== y Nicht-Identität Gibt true zurück, wenn x nicht gleich y ist

Die folgenden Beispiele zeigen die unterschiedlichen Ergebnisse, die mit einigen Array-Operatoren erzielt werden:

Beispiel

<?php $x = array("a" => "red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); $z = $x + $y; //Vereinigung der Arrays $x und $y var_dump($z); var_dump($x == $y); var_dump($x === $y); var_dump($x != $y); var_dump($x <> $y); var_dump($x !== $y); ?>

Selbst ausprobieren »

Ternär

Ein weiterer bedingter Operator ist der Operator "?:" (oder der ternäre Operator).

Syntaxformat

(expr1) ? (expr2) : (expr3) 

Der Wert ist expr2, wenn expr1 zu TRUE ausgewertet wird, und expr3, wenn expr1 zu FALSE ausgewertet wird.

Seit PHP 5.3 kann der mittlere Teil des ternären Operators weggelassen werden. Der Ausdruck expr1 ?: expr3 gibt expr1 zurück, wenn expr1 zu TRUE ausgewertet wird, andernfalls gibt er expr3 zurück.

Beispiel

Im folgenden Beispiel wird durch Prüfen, ob die $_GET-Anfrage einen user-Wert enthält, $_GET['user'] zurückgegeben, falls vorhanden, andernfalls wird nobody zurückgegeben:

Beispiel

<?php //Normale Syntax $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; echo $username, PHP_EOL; //PHP 5.3+-Versionssyntax $username = $_GET['user'] ?: 'nobody'; echo $username, PHP_EOL; ?>

Hinweis:PHP_EOList ein Zeilenumbruchzeichen und mit mehr Plattformen kompatibel.

In PHP 7+-Versionen gibt es einen zusätzlichen NULL-Coalescing-Operator??, Beispiele sind wie folgt:

Beispiel

<?php //Wenn $_GET['user'] nicht existiert, 'nobody' zurückgeben, andernfalls den Wert von $_GET['user'] zurückgeben $username = $_GET['user'] ?? 'nobody'; //Ähnlicher ternärer Operator $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; ?>

Kombinierter Vergleichsoperator (PHP7+)

PHP7+ unterstützt den kombinierten Vergleichsoperator, auch Spaceship-Operator genannt, mit dem Symbol:<=>. Der kombinierte Vergleichsoperator kann zwei Variablen einfach vergleichen, und natürlich ist er nicht auf den Vergleich numerischer Daten beschränkt.

Das Syntaxformat lautet wie folgt:

$c = $a <=> $b;

Die Auswertung ist wie folgt:

  • Wenn $a > $b, dann$cder Wert von1。
  • Wenn$a == $b, dann$cder Wert von0。
  • Wenn$a < $b, dann$cder Wert von-1。

Beispiele sind wie folgt:

Beispiel

<?php //Ganzzahl echo 1 <=> 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1 //Gleitkommazahl echo 1.5 <=> 1.5; // 0 echo 1.5 <=> 2.5; // -1 echo 2.5 <=> 1.5; // 1 //Zeichenkette echo "a" <=> "a"; // 0 echo "a" <=> "b"; // -1 echo "b" <=> "a"; // 1 ?>

Operatorrangfolge

Die folgende Tabelle listet Operatoren in der Reihenfolge ihrer Priorität von hoch nach niedrig auf. Operatoren in derselben Zeile haben dieselbe Priorität; in diesem Fall bestimmt ihre Assoziativität die Reihenfolge der Auswertung.

Erklärung: Links = von links nach rechts, rechts = von rechts nach links.

Assoziativität Operator Zusätzliche Informationen
Keine clone new clone and new
Left [ array()
Rechts ++ -- ~ (int) (float) (string) (array) (object) (bool) @ Typ- und Inkrement/Dekrement-Operatoren
Keine instanceof Type
Rechts ! Logische Operatoren
Left * / % Arithmetische Operatoren
Left + – . Arithmetische Operatoren und String-Operatoren
Left << >> Bitweise Operatoren
Keine == != === !== <> Vergleichsoperatoren
Left & Bitweise Operatoren und Referenzen
Left ^ Bitweise Operatoren
Left | Bitweise Operatoren
Left && Logische Operatoren
Left || Logische Operatoren
Left ? : Ternärer Operator
Rechts = += -= *= /= .= %= &= |= ^= <<= >>= => Zuweisungsoperatoren
Left und Logische Operatoren
Left xor Logische Operatoren
Left oder Logische Operatoren
Left , Wird an mehreren Stellen verwendet

In der Operatorrangfolge sind or und ||, && und and alle logische Operatoren mit derselben Wirkung, aber ihre Rangfolge ist unterschiedlich.

Beispiel

<?php //Rangfolge: && > = > and //Rangfolge: || > = > or $a = 3; $b = false; $c = $a or $b; var_dump($c); //Hier ist $c ein int-Wert 3, kein boolescher Wert true. $d = $a || $b; var_dump($d); //Hier ist $d ein boolescher Wert true. ?>

Die Ausgabe der obigen Beispiele ist:

int(3)
bool(true)

Verwendung von Klammern

Wir verwenden Klammerpaare, um die Reihenfolge der Operationen explizit anzugeben, anstatt uns auf Operatorrangfolge und Assoziativität zu verlassen, was normalerweise die Lesbarkeit des Codes erhöhen kann.

Beispiel

<?php //Klammern haben bei Operationen Vorrang $a = 1; $b = 2; $c = 3; $d = $a + $b * $c; echo $d; echo "\n"; $e = ($a + $b) * $c; //Verwendung von Klammern echo $e; echo "\n"; ?>

Die Ausgabe der obigen Beispiele ist:

7
9
Weitere Erweiterungen