Detaillierte Erläuterung der PHP-String-Selbstberechnung und der Verwendung numerischer Berechnungen

伊谢尔伦
Freigeben: 2023-03-10 22:24:01
Original
1836 Leute haben es durchsucht

Wenn eine Zeichenfolge als numerischer Wert behandelt wird, lauten Ergebnis und Typ wie folgt:

Wenn die Zeichenfolge nicht „.“, „e“ oder „E“ enthält und sein numerischer Wert innerhalb des Bereichs von Ganzzahltypen (definiert durch PHP_INT_MAX) liegt, wird die Zeichenfolge als Ganzzahl behandelt, um den Wert zu erhalten. In allen anderen Fällen wird der Wert als Float behandelt.

Der Anfang der Zeichenfolge bestimmt ihren Wert. Wenn die Zeichenfolge mit einem zulässigen numerischen Wert beginnt, wird dieser numerische Wert verwendet. Andernfalls ist sein Wert 0 (Null). Zulässige Werte bestehen aus einem optionalen Vorzeichen, gefolgt von einer oder mehreren Ziffern (ggf. mit Dezimalpunkt) und einem optionalen Exponententeil. Der Exponententeil besteht aus einem „e“ oder „E“, gefolgt von einer oder mehreren Ziffern.

Folgendes wird in Ganzzahlen umgewandelt:

[+/-][0-9][*]
Nach dem Login kopieren

Folgendes wird in Gleitkommazahlenumgerechnet:

[+/-][0-9][.][0-9][e/E][0-9][*]
Nach dem Login kopieren
$r = '123' + 1;
var_dump($r);// 输出结果 int(124)$r = '123.4' + 1;
var_dump($r);// 输出结果 float(124.4)$r = '1.5e4' + 1;
var_dump($r);// 输出结果 float(15001)$r = '123456789123456789' + 1;
var_dump($r);// 输出结果 float(1.2345678912346E+17)$r = '123abc' + 1;
var_dump($r);// 输出结果 int(124)$r = '123e1abc' + 1;
var_dump($r);// 输出结果 float(1231)$r = '123.abc' + 1;
var_dump($r);//输出结果 float(124)$r = '+123abc' + 1;
var_dump($r);// 输出结果 int(124)$r = '-123abc' + 1;
var_dump($r);// 输出结果 int(-122)$r = 'abc' + 1;
var_dump($r);// 输出结果 int(1)
Nach dem Login kopieren

Wenn Sie festgestellt haben, dass Sie eine Ganzzahl (Gleitkommazahl) benötigen, können Sie mit intval() (floatval()) zunächst die Zeichenfolge in eine Ganzzahl (Gleitkommazahl) umwandeln und dann Berechnungen mit anderen Werten durchführen .

Eins. Hinzufügen von numerischen Zeichenfolgen in PHP

1. Wenn zwei Zeichenfolgen am Anfang keinen gültigen Wert haben oder keine numerischen Zeichenfolgen sind, werden die beiden Zeichenfolgen beim Hinzufügen als 0 betrachtet; 🎜>2. Beim Hinzufügen zweier numerischer Zeichenfolgen werden die signifikanten Ziffern hinzugefügt.

$a="abc";
$b="b01";
$a+$b是0
Nach dem Login kopieren

3/Wenn die Zeichenfolge „.“, „e“, „E“ enthält, wird sie als Zahl vom Typ Float verarbeitet.

$a="100";
$b="01a";
$a+$b=101;
Nach dem Login kopieren

Vergleichen Sie zwei Zeichenfolgen in 2.php (< > ==);
$a="100";
$b="12.6a";
$a+$b=112.6;
Nach dem Login kopieren
$a=&#39;10&#39;;
$b=&#39;12.3e3&#39;;
$a+$b同样为float型float(12310)
Nach dem Login kopieren
Zwei

Zeichenfolgenvergleiche in 1.php< Ob 🎜> gleich ist Verwenden Sie im Allgemeinen nicht (==), da (==) den ursprünglichen

Datentyp

ändert, sondern verwenden Sie die Funktionsreihe strcmp(str1, str2) strcmp($str1,$ str2 ); (strcmp muss zum Vergleich in den Typ string konvertiert werden). Aber im Vergleich mit (==) ist das Ergebnis wahr

var_dump($a==$b);
$a=&#39;123&#39;;
$b=&#39;123.&#39;;($b后多了一个小数点)
Nach dem Login kopieren

So ist es Wird im Allgemeinen nicht verwendet (==). Führt einen Zeichenfolgenvergleich durch.

Außerdem wird beim Vergleich einer Zahl mit einer Zeichenfolge die Zeichenfolge in den Typ int oder float konvertiert (numberic_string enthält „.“, „e“, „E“).

2. Vergleich von ( > < )

2-1: Wenn es sich um einen Vergleich zweier Zeichenfolgen handelt, vergleichen Sie die ASCII-Codes der entsprechenden Zeichen nacheinander.
‘abc’转化为int(0);
‘12ab’转化为int(12);
‘12.3e3&#39;转化为float(12300);
Nach dem Login kopieren

2-2: Werden Zahlen mit Strings verglichen, werden die Strings zunächst in Zahlen umgewandelt und dann verglichen.

2-3: Wenn zwei numerische Zeichenfolgen (reine numerische Zeichenfolgen) verglichen werden, werden die beiden Zeichenfolgen zunächst in Zahlen umgewandelt und dann verglichen.

Aber

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der PHP-String-Selbstberechnung und der Verwendung numerischer Berechnungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage