PHP数据类型转换的一些坑
PHP作为一门弱类型语言,在数据类型方面不像JAVA那么严格,在数据转换方面有时候却会不小心就掉进了坑里面,
字符串转换整型,Float等,如果不加注意,都会得不到自己预想的结果。
//字符串转数字,遇到字符就不进行下面的转换了
$str = '22ww333';
settype($str,'integer');
echo $str.'<br>';//22
$str = '121.9.3www111';
//转换为整型,但是并不会四舍五入,因为遇到了.
echo intval($str).'<br>';//输出121
//转换为float.float认为.属于它的范围,但是只会取第一个.
echo floatval($str).'<br>';//输出121.9
$a = '27777777777733333333333330';
$b = '27777777777733333333333331';
$c='111111112';
$d='111111113';
$a = intval($a);
$b = intval($b);
var_dump($a == $b);//true 这里因为上面的长度超过了int型的长度,自动截断,所以就一样了啊。。。
$c = intval($c);
$d = intval($d);
var_dump($c == $d);//false 没有超过长度,正常。
还没有评论,来说两句吧...