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;
相关链接:
对于俩个字符串, 会首先判断他们是否是numeric_string, 如果是,那么就会转换成整形来比较.. 那么什么是numeric string呢? 因为PHP不区分类型, 所以它采用一个策略, 当你的变量看起来是一个数字的时候, 那么她就认为这个变量是一个数字,然后转换为整形来比较。
- 上一篇: php中通过post和get传递数组的方法
- 下一篇:没有了