Rumah > pembangunan bahagian belakang > tutorial php > php字符串自身计算及与数值计算用法详解

php字符串自身计算及与数值计算用法详解

伊谢尔伦
Lepaskan: 2023-03-10 22:24:01
asal
1982 orang telah melayarinya

当一个字符串被当作一个数值来取值,其结果和类型如下:

如果该字符串没有包含 ‘.’,’e’ 或 ‘E’ 并且其数字值在整型的范围之内(由 PHP_INT_MAX 所定义),该字符串将被当成 integer 来取值。其它所有情况下都被作为 float 来取值。

该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 ‘e’ 或 ‘E’ 后面跟着一个或多个数字构成。

如下会被转成整数:

[+/-][0-9][*]
Salin selepas log masuk

如下会被转成浮点型数:

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

已经确定需要的是整数(浮点数),则可以使用intval()(floatval())先将字符串转换成整数(浮点数),然后再与其他数值进行计算。

一。PHP中数值型字符串相加

1.若两个字符串开头没有有效数值或不是数值型字符串,这两个字符串相加时都看成0;

$a="abc";
$b="b01";
$a+$b是0
Salin selepas log masuk

2.两个数值型字符串相加时,有效数字进行相加。

$a="100";
$b="01a";
$a+$b=101;
Salin selepas log masuk

3/如果字符串中带有‘.’,'e','E'时,按float型数字处理。

$a="100";
$b="12.6a";
$a+$b=112.6;
Salin selepas log masuk
$a='10';
$b='12.3e3';
$a+$b同样为float型float(12310)
Salin selepas log masuk

二.php中两个字符串相比较(< > ==);

1.php中两个字符串比较是否相等,一般不用(==),因为(==)会改变原有数据类型,而是用strcmp(str1,str2)系列函数strcmp($str1,$str2);(strcmp是强制转化为string型进行比较)。

$a=&#39;123&#39;;
$b=&#39;123.&#39;;($b后多了一个小数点)
Salin selepas log masuk

但是有(==)进行比较是结果却是true

var_dump($a==$b);

所以一般不用(==)进行字符串的比较。

另外,一个数字与一个字符串进行比较时,字符串会转化为int或float型(numberic_string含有‘.’,'e','E')。

‘abc’转化为int(0);
‘12ab’转化为int(12);
‘12.3e3&#39;转化为float(12300);
Salin selepas log masuk

2.( > < )的比较

2-1:如果是两个字符串的比较,则逐个比较对应的字符的ascii码。

2-2:如果是数字与字符串进行比较,字符串先转化为数字,然后进行比较。

2-3:如果是两个数字型字符串(纯数字型字符串)进行比较,则这两个字符串首先转化为数字再进行比较。

$a=&#39;100&#39;;
$b=&#39;20&#39;;
则$a>$b;
Salin selepas log masuk

但是

如$a=&#39;&#39;100a;
$b=&#39;20&#39;;时,
结果为$a<$b;
Salin selepas log masuk

Atas ialah kandungan terperinci php字符串自身计算及与数值计算用法详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan