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

伊谢尔伦
发布: 2017-06-21 11:27:42
原创
2285人浏览过

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

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

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

如下会被转成整数:

[+/-][0-9][*]
登录后复制

如下会被转成浮点型数:

立即学习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)
登录后复制

已经确定需要的是整数(浮点数),则可以使用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中两个字符串相比较(< > ==);

《PHP程序设计》第二版
《PHP程序设计》第二版

本书图文并茂,详细讲解了使用LAMP(PHP)脚本语言开发动态Web程序的方法,如架设WAMP平台,安装与配置开源Moodle平台,PHP程序设计技术,开发用户注册与验证模块,架设LAMP平台。 本书适合计算机及其相关专业本、专科学生作为学习LAMP(PHP)程序设计或动态Web编程的教材使用,也适合对动态Web编程感兴趣的读者自觉使用,对LAMP(PHP)程序设计人员也具有一定的参考价值。

《PHP程序设计》第二版 713
查看详情 《PHP程序设计》第二版

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='100';
$b='20';
则$a>$b;
登录后复制

但是

如$a=''100a;
$b='20';时,
结果为$a<$b;
登录后复制

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

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号