2016-04-24 4 views
-1

Kann mir jemand sagen, warum das Ergebnis des folgenden Ausdrucks:PHP Ergebnis der kombinierten String

$temp=3+"60%"+"$20" 

Welche Zeichen "$" und "%" in PHP Programmiersprache bedeuten?

+0

Sie sind einfach String-Zeichen, ohne besondere Bedeutung .... Ihre Mathematik versucht, ihnen eine besondere Bedeutung zu verleihen –

+3

Loses Tippen bedeutet PHP wird versuchen, Ihre Strings in Zahlen zu konvertieren, um in Arithmetik zu verwenden (Ihre '+ '), von links nach rechts arbeiten, bis es auf nicht-numerische Zeichen trifft; also kann es "60%" in "60" umwandeln, aber kann "$ 20" 'in nichts umwandeln, also behandelt es es als 0; also 3 + 60 + 0 = 63 –

+0

Es macht Sinn. Könnten Sie Ihren Kommentar als Lösung posten? Vielen Dank – ruud

Antwort

1

Beachten Sie zuerst, dass Sie die Addition von Zahlen durchführen (keine String-Verkettung).

Aus diesem Grund versucht der Interpreter, Zeichenketten in Zahlen zu konvertieren, bevor sie die Summe ausführt.

Beim Analysieren eines Strings wird die resultierende Zahl gebildet, wenn Ziffern vorkommen. Wenn eine Nicht-Ziffer gefunden wird, endet die Konvertierung **.

"60%" wird in 60 konvertiert. Die % hat keine Bedeutung, wird einfach verworfen.

"$20" wird in 0 konvertiert, da das Zeichen $ angetroffen wird Zeichenfolge zu int Konvertierung wird abgebrochen.

So haben Sie 60+3

Das Dollarzeichen in einem doppelten Anführungszeichen Zeichenfolge tatsächlich eine besondere Bedeutung haben, wenn durch den Namen einer Variablen gefolgt: der Inhalt der Variablen in den String platziert ist so:

$a = "20"; 
$b = "10" + "$a"; // --> 30 

(**) Es gibt einige Ausnahmen: "10E3" als 10E3 umgewandelt = 1000;

"10.2" in umgewandelt in 10.2. Die gesamte Operation wird zur Summe der Gleitkommazahlen.