入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

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

创建时间:2016-10-13 投稿人: 浏览次数:2788


一。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;


相关链接:





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






声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。