Heim  >  Artikel  >  Backend-Entwicklung  >  Operatoren – Hinweise zum PHP-Handbuch

Operatoren – Hinweise zum PHP-Handbuch

WBOY
WBOYOriginal
2016-08-08 09:29:20806Durchsuche

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:

  • In eine beliebige Richtung herausbewegte Bits werden verworfen.
  • Beim Verschieben nach links wird mit Nullen aufgefüllt und das Vorzeichen bleibt nicht erhalten.
  • Das Vorzeichenbit wird beim Verschieben nach rechts gefüllt, d.h. die positiven und negativen Vorzeichen bleiben erhalten.

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(&#39;ipconfig&#39;);
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 = &#39;z&#39;;
$Z = &#39;Z&#39;;
var_dump(++$z);  // &#39;aa&#39;
var_dump(++$Z);  // &#39;AA&#39;</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

  1. 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.

  2. ist gleich: $a == $b. haben die gleichen Schlüssel-Wert-Paare.

  3. sind deckungsgleich: $a === $b. Sie verfügen über dieselben Schlüssel-Wert-Paare, in derselben Reihenfolge und demselben Typ.

  4. variiert: $a != $b oder $a <> $b.

  5. ist nicht kongruent: $a !== $b.

  6. 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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn