Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der PHP-String-Selbstberechnung und der Verwendung numerischer Berechnungen

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

伊谢尔伦
伊谢尔伦Original
2017-06-21 11:27:421804Durchsuche

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][*]

Folgendes wird in Gleitkommazahlenumgerechnet:

[+/-][0-9][.][0-9][e/E][0-9][*]
$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)

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

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

$a="100";
$b="01a";
$a+$b=101;

Vergleichen Sie zwei Zeichenfolgen in 2.php (6d267e5fab17ea8bc578f9e7e5e1570b ==);
$a="100";
$b="12.6a";
$a+$b=112.6;
$a='10';
$b='12.3e3';
$a+$b同样为float型float(12310)
Zwei

Zeichenfolgenvergleiche in 1.php 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='123';
$b='123.';($b后多了一个小数点)

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);

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!

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