Heim  >  Artikel  >  Backend-Entwicklung  >  Vorrang des PHP-Operators, bitte erläutern

Vorrang des PHP-Operators, bitte erläutern

WBOY
WBOYOriginal
2016-08-04 09:20:23950Durchsuche

Nachdem ich die Rangfolge der PHP-Operatoren gelesen habe, kann ich die Beispiele im Handbuch verstehen, aber dieses ist etwas schwer zu verstehen

<code>
echo "1+5". 1+5;// 6

echo "1+5". 5+1;// 2

echo "5+1". 5+1;// 6

echo "5+1". 1+5;// 10</code>

Antwortinhalt:

Nachdem ich die Rangfolge der PHP-Operatoren gelesen habe, kann ich die Beispiele im Handbuch verstehen, aber dieses ist etwas schwer zu verstehen

<code>
echo "1+5". 1+5;// 6

echo "1+5". 5+1;// 2

echo "5+1". 5+1;// 6

echo "5+1". 1+5;// 10</code>

Beachten Sie die Anweisungen auf php.net.

Meine Übersetzung (schlecht)

Der Punktoperator

hat die gleiche Priorität wie , -, und eine gemischte Verwendung kann zu unerwarteten Effekten führen.

wie

<code class="php">$var = 3;

echo "Result: " . $var + 3;
</code>

Das obige Ergebnis gibt 3 anstelle des erwarteten Ergebnisses aus6

Da der Punktoperator die gleiche Priorität hat wie , -, berechnen alle oben genannten Operationen "Result: " . $var 3; zunächst das Ergebnis der Zeichenfolge Result und der Variablen $var, um

zu erhalten

Resuklt3

berechnet dann das Ergebnis von Resuklt3 und der Zahl 3. Nicht leere, nicht numerische Zeichenfolgen und ganze Zahlen werden während der Berechnung in 0 umgewandelt, sodass das Ergebnis 3 ist

Dasselbe wie echo "5 1". 1 5; Dies ist das Gleiche. Berechnen Sie zuerst "5 1". 1, um eine Zeichenfolge 5 11 zu erhalten (beachten Sie, dass dies eine Zeichenfolge ist), fügen Sie dann die Zahl 5 hinzu und konvertieren Sie die Zeichenfolge 5 11 zu Zahl = 5, plus 5 das Ergebnis ist 10

Die Antwort ist sehr einfach. Vier Beispiele veranschaulichen ein Problem. Die Priorität des String-Verkettungsoperators . ist höher als die des Operators .
Wenn die für die Addition verwendete Variable in PHP zunächst keinen numerischen Typ hat, wird sie zunächst in einen numerischen Typ konvertiert und die Zeichenfolge „1 15“ wird in die Zahl 1 konvertiert.
Die Ergebnisse dieser Artikel sind offensichtlich:

<code>"1+5" . 1 + 5 = "1+15" + 5 = 1 + 5 = 6
"1+5" . 5 + 1 = "1+51" + 1 = 1 + 1 = 2
"5+1" . 5 + 1 = "5+15" + 1 = 5 + 1 = 6
"5+1" . 1 + 5 = "5+11" + 5 = 5 + 5 = 10</code>

Vorrang des PHP-Operators, bitte erläutern

Ergänzung:
Der String-Verketter und der arithmetische Operator haben die gleiche Priorität und liegen auf der gleichen Ebene. Die Bindungsrichtung ist links, also von links nach rechts gerechnet. siehe Link
Daher wird zuerst die Zeichenfolgenverkettung und dann die Additionsoperation durchgeführt.

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