Lorsqu'une chaîne est traitée comme une valeur numérique, le résultat et le type sont les suivants :
Si la chaîne ne contient pas '.', 'e' ou 'E' et sa valeur numérique est dans la plage des types entiers (définis par PHP_INT_MAX), la chaîne sera traitée comme entier pour obtenir la valeur. Dans tous les autres cas, la valeur est traitée comme flottante.
Le début de la chaîne détermine sa valeur. Si la chaîne commence par une valeur numérique légale, cette valeur numérique est utilisée. Sinon, sa valeur est 0 (zéro). Les valeurs légales sont constituées d'un signe facultatif, suivi d'un ou plusieurs chiffres (éventuellement avec un point décimal), puis d'une partie exposant facultative. La partie exposant se compose d’un « e » ou d’un « E » suivi d’un ou plusieurs chiffres.
sera converti en entiers comme suit :
[+/-][0-9][*]
Si vous avez déterminé que vous avez besoin d'un entier (nombre à virgule flottante), vous pouvez utiliser intval() (floatval() ) pour convertir d'abord la chaîne en un entier (nombre à virgule flottante), puis effectuer des calculs avec d'autres valeurs. Un. Ajout de chaînes numériques en PHP
[+/-][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)
< ; 🎜>2. Lors de l'ajout de deux chaînes numériques, les chiffres significatifs sont ajoutés.
3/Si la chaîne contient '.', 'e', 'E', elle sera traitée comme un nombre de type float.$a="abc"; $b="b01"; $a+$b是0
Comparez deux chaînes dans 2.php (< > ==);
$a="100"; $b="01a"; $a+$b=101;
comparaisons de chaînes dans 1.php< Si 🎜> est égal , n'utilisez généralement pas (==), car (==) changera le
type de données d'origine$a="100"; $b="12.6a"; $a+$b=112.6;
$a='10'; $b='12.3e3'; $a+$b同样为float型float(12310)
string
à des fins de comparaison).Mais comparé à (==), le résultat est vraivar_dump($a==$b);C'est donc généralement non utilisé (==) effectue une comparaison de chaînes.
De plus, lors de la comparaison d'un nombre avec une chaîne, la chaîne sera convertie en type int ou float (numberic_string contient '.', 'e', 'E').$a='123'; $b='123.';($b后多了一个小数点)
‘abc’转化为int(0); ‘12ab’转化为int(12); ‘12.3e3'转化为float(12300);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!