Heim >Backend-Entwicklung >PHP-Tutorial >Operatoren – Hinweise zum PHP-Handbuch
Operatorpriorität
Jede Programmiersprache hat Operatoren, und deren flexible Verwendung muss erlernt werden.
Betreiber haben unterschiedliche Prioritäten und Kombinationsrichtungen.
<code><?php var_dump(1 <= 1 == 1); // true var_dump(true ? 0 : true ? 1 : 2); // 2 $a = 1; var_dump(++$a + $a++); // may print 4 or 5</code>
Verwenden Sie bei Bedarf Klammern, um die Lesbarkeit Ihres Codes zu verbessern.
Arithmetische Operatoren
Das Ergebnis des Modulo-Operators hat das gleiche Vorzeichen wie die Dividende.
Der Zuweisungsoperator kopiert den Wert der ursprünglichen Variablen in die neue Variable. Die Ausnahme besteht darin, dass der Wert beim Auffinden eines Objekts durch Referenz zugewiesen wird, es sei denn, das Schlüsselwort clone
wird explizit zum Kopieren verwendet.
Der neue Operator gibt automatisch eine Referenz zurück.
Bitweise Operatoren
Für die Verschiebung gelten folgende Regeln:
Der Schwerpunkt dieses Abschnitts liegt auf dem Verständnis der verschiedenen Beispielprogramme, die im Mittelpunkt des Handbuchs stehen. Die XOR-Operation von Strings im Beispiel ist schwer zu verstehen. Wir werden uns später damit befassen. Es gibt auch ganzzahlige Verschiebungen, ich habe das Gefühl, sie gut zu verstehen.
Vergleichsoperator
Gewöhnliches Gleichheitszeichen==
Solange die beiden Werte nach der Typkonvertierung gleich sind, wird true zurückgegeben.
Wenn Sie eine Zahl mit einer Zeichenfolge vergleichen oder Zeichenfolgen mit numerischem Inhalt vergleichen, wird die Zeichenfolge in einen numerischen Wert umgewandelt und der Vergleich wird als numerischer Wert durchgeführt.
<code><?php var_dump(0 == "a"); // true var_dump("1" == "01"); // true var_dump("10" == "1e1"); // true</code>
Seit PHP 5.3 kann der mittlere Teil des ternären Operators weggelassen werden. Der Ausdruck expr1 ?: expr3
gibt expr1 zurück, wenn expr1 wahr ist, andernfalls gibt er expr3 zurück. Ternäre Operatoren werden von links nach rechts ausgewertet.
Fehlerkontrolloperator
PHP unterstützt einen Fehlerkontrolloperator @, der nur für Ausdrücke gültig ist. Durch die Platzierung vor einem Ausdruck werden etwaige Fehlermeldungen, die der Ausdruck möglicherweise erzeugt, ignoriert.
Es kann weder vor der Definition einer Funktion oder Klasse platziert noch in bedingten Strukturen wie if und foreach verwendet werden.
Ausführungsoperator
PHP unterstützt einen Ausführungsoperator: den Backtick, der sich in der oberen linken Ecke der Tastatur befindet. Der Effekt ist der gleiche wie bei der Funktion shell_exec()
.
<code><?php $output = `systeminfo`; $outip = shell_exec('ipconfig'); echo "<pre class="brush:php;toolbar:false">$outip"; echo "
$output"; Der
Backtick-Operator hat keine Wirkung, wenn der abgesicherte Modus aktiviert oder shell_exec()
deaktiviert ist.
Achtung! Backticks können nicht in Zeichenfolgen in doppelten Anführungszeichen verwendet werden.
Inkrement-Dekrement-Operator
Inkrementierungs-/Dekrementierungsoperatoren haben keinen Einfluss auf boolesche Werte.
Das Verringern des NULL-Werts hat keine Auswirkung, aber das Ergebnis der Erhöhung von NULL ist 1.
Beim Umgang mit arithmetischen Operationen an Zeichenvariablen folgt PHP den Gewohnheiten von Perl statt denen von C. Beispielsweise verwandelt $a = 'Z'; $a ;
in Perl $a in „AA“.
Achtung! Zeichenvariablen können nur inkrementiert, nicht dekrementiert werden und unterstützen nur reine Buchstaben (a-z und A-Z). Das Erhöhen/Verringern anderer Zeichenvariablen ist ungültig und die ursprüngliche Zeichenfolge ändert sich nicht.
<code><?php $z = 'z'; $Z = 'Z'; var_dump(++$z); // 'aa' var_dump(++$Z); // 'AA'</code>
Logische Operatoren
||
hat eine höhere Priorität als or
. &&
hat eine höhere Priorität als and
.
String-Operatoren
Der erste ist der Verbindungsoperator .
und der zweite ist der Verbindungszuweisungsoperator .=
.
Array-Operator
Vereinigt: $a $b
. Hängen Sie die Array-Elemente rechts an das Array links an. Wenn die Schlüssel in beiden Arrays vorhanden sind, werden nur die Schlüssel im linken Array verwendet und alle Änderungen werden ignoriert.
ist gleich: $a == $b
. haben die gleichen Schlüssel-Wert-Paare.
sind deckungsgleich: $a === $b
. Sie verfügen über dieselben Schlüssel-Wert-Paare, in derselben Reihenfolge und demselben Typ.
variiert: $a != $b
oder $a <> $b
.
ist nicht kongruent: $a !== $b
.
Wenn die Zellen im Array denselben Schlüsselnamen und denselben Wert haben, sind sie beim Vergleich gleich. Reihenfolge und Typ sind egal.
<code><?php $a = array("apple", "banana"); $b = array(1 => "banana", "0" => "apple"); var_dump($a); var_dump($b); var_dump($a == $b); var_dump($a === $b);</code>
Die Ausgabeergebnisse werden unten angezeigt.
<code>array (size=2) 0 => string 'apple' (length=5) 1 => string 'banana' (length=6) array (size=2) 1 => string 'banana' (length=6) 0 => string 'apple' (length=5) boolean true boolean false</code>
Typoperator
In PHP gibt es einen Typoperator instanceof
, der verwendet wird, um zu bestimmen, ob eine PHP-Variable zu einer Instanz einer bestimmten Klasse gehört.
<code><?php class MyParent {} class MyClass extends MyParent {} class NotMyClass {} interface MyInterface {} class InClass implements MyInterface {} $a = new MyClass; var_dump($a instanceof MyClass); // true var_dump($a instanceof NotMyClass); // false var_dump($a instanceof MyParent); // true $b = new InClass; var_dump($b instanceof MyInterface); // true $c = 'InClass'; var_dump($b instanceof $c); // true var_dump($c instanceof stdClass); // false</code>
Beachten Sie, dass instanceof
nicht zum Erkennen von Konstanten verwendet werden darf.
(Volltext beendet)
Das Obige stellt die Operatoren vor - Hinweise zum PHP-Handbuch, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.