Warum führt die Addition "+" zweier Strings in PHP zu diesem Ergebnis?

8

In PHP würde "aaa" + "bbb" 0 erzeugen.

Ich weiß, dass, um zwei Strings in PHP zu verketten, ich . verwenden muss. Aber ich weiß nicht, warum der Zusatz + von zwei Strings in PHP dieses Ergebnis erzeugt?

    
Yuhang Lin 25.10.2017, 22:25
quelle

1 Antwort

7

Wenn Sie arithmetische Operatoren für Nicht-Zahlen verwenden, wandelt PHP sie in Integer-Typen um. PHP ist eine Art Smart, also würde String "1" in Ganzzahl 1 umgewandelt und String "1.0" würde in Float umgewandelt werden, jedoch würde "aaa" in Ganzzahl 0 sowie "bbb" umgewandelt werden. Also sind beide in 0 umgewandelt% 0 + 0 , was offensichtlich 0 ist.

Siehe PHP: String-Konvertierung in Zahlen .

Ab PHP 7.1.0 wird Folgendes generiert:

  

Warnung: Ein nicht-numerischer Wert wurde gefunden

Dies ist jedoch in Ordnung, da sie numerisch sind, jedoch kein numerischer Typ (Zeichenfolgen):

%Vor%     
AbraCadaver 25.10.2017, 22:52
quelle

Tags und Links