php中的数值型字符串相加 相比较(> < ==)


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


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

eg:

$a="abc";

$b="b01";


$a+$b是0


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


eg:

$a="100";

$b="01a";


$a+$b=101;


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


eg:

$a="100";

$b="12.6a";

$a+$b=112.6;


$a='10';

$b='12.3e3';

$a+$b同样为float型float(12310)


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


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

strcmp($str1,$str2);(strcmp是强制转化为string型进行比较)。


eg:

$a='123';

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


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

var_dump($a==$b);

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


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

eg:

‘abc’转化为int(0);

‘12ab’转化为int(12);

‘12.3e3'转化为float(12300);


2.( > < )的比较

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


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


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

eg:

$a='100';

$b='20';

则$a>$b;

但是

如$a=''100a;

$b='20';时,

结果为$a<$b;


相关链接:

PHP容易出错之二:PHP中的数字与字符串比较


  对于俩个字符串, 会首先判断他们是否是numeric_string, 如果是,那么就会转换成整形来比较.. 那么什么是numeric string呢? 因为PHP不区分类型, 所以它采用一个策略, 当你的变量看起来是一个数字的时候, 那么她就认为这个变量是一个数字,然后转换为整形来比较。






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值