搜索
首页后端开发php教程php字符串自身计算及与数值计算用法详解
php字符串自身计算及与数值计算用法详解Jun 21, 2017 am 11:27 AM
php字符串数值他自己计算

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

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

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

如下会被转成整数:

[+/-][0-9][*]

如下会被转成浮点型数:

[+/-][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)

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

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

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

$a="abc";
$b="b01";
$a+$b是0

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

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

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

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

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

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

$a='123';
$b='123.';($b后多了一个小数点)

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

var_dump($a==$b);

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

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

‘abc’转化为int(0);
‘12ab’转化为int(12);
‘12.3e3'转化为float(12300);

2.( > < )的比较

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

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

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

$a=&#39;100&#39;;
$b=&#39;20&#39;;
则$a>$b;

但是

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

以上是php字符串自身计算及与数值计算用法详解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
php怎么将16进制字符串转为数字php怎么将16进制字符串转为数字Oct 26, 2021 pm 06:36 PM

php将16进制字符串转为数字的方法:1、使用hexdec()函数,语法“hexdec(十六进制字符串)”;2、使用base_convert()函数,语法“bindec(十六进制字符串, 16, 10)”。

php怎么将字符串转换成小数php怎么将字符串转换成小数Mar 22, 2023 pm 03:22 PM

PHP 是一门功能强大的编程语言,广泛应用于 Web 开发领域。其中一个非常常见的情况是需要将字符串转换为小数。这在进行数据处理的时候非常有用。在本文中,我们将介绍如何在 PHP 中将字符串转换为小数。

golang怎么检测变量是否为字符串golang怎么检测变量是否为字符串Jan 06, 2023 pm 12:41 PM

检测变量是否为字符串的方法:1、利用​“%T”格式化标识,语法“fmt.Printf("variable count=%v is of type %T \n", count, count)”;2、利用reflect.TypeOf(),语法“reflect.TypeOf(变量)”;3、利用reflect.ValueOf().Kind()检测;4、使用类型断言,可以对类型进行分组。

php 字符串长度不一致怎么办php 字符串长度不一致怎么办Feb 07, 2023 am 09:58 AM

php字符串长度不一致的解决办法:1、通过mb_detect_encoding()函数查看字符串的编码方式;2、通过mb_strlen函数查看具体字符长度;3、使用正则表达式“preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str1, $matches);”剔除非中文字符即可。

go语言怎么删除字符串中的空格go语言怎么删除字符串中的空格Jan 17, 2023 pm 02:31 PM

删除方法:1、使用TrimSpace()函数去除字符串左右两边的空格,语法“strings.TrimSpace(str)”;2、使用Trim()函数去除字符串左右两边的空格,语法“strings.Trim(str, " ")”;3、使用Replace()函数去除字符串的全部空格,语法“strings.Replace(str, " ", "", -1)”。

php字符串函数学习:怎么去掉前面的字符php字符串函数学习:怎么去掉前面的字符Mar 20, 2023 pm 02:33 PM

在开发PHP应用程序时,有时我们需要去掉字符串前面的某些特定字符或者字符串。在这种情况下,我们需要使用一些PHP函数来实现这一目标。本文将介绍一些PHP函数,帮助您轻松地去掉字符串前面的字符或字符串。

php怎么将字符串转为布尔类型php怎么将字符串转为布尔类型Jul 01, 2021 pm 06:36 PM

转换方法:1、在转换变量前加上用括号括起来的目标类型“(bool)”或“(boolean)”;2、用boolval()函数,语法“boolval(字符串)”;3、用settype()函数,语法“settype(变量,"boolean")”。

php字符串部分乱码怎么办php字符串部分乱码怎么办Jan 20, 2023 am 10:18 AM

php字符串部分乱码的解决办法:1、使用“mb_substr(strip_tags($str),0,-1,'UTF-8');”截取字符串;2、使用“iconv("UTF-8","GB2312//IGNORE",$data)”转换字符集即可。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能