一。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;
相关链接: