一个基础问题,关于类型转换
做了个实验:
$foo="123.45";//string "123.45"
echo (int)$foo;//123
echo PHP_EOL;
echo intval($foo);//123
echo PHP_EOL;
$bar=1+"123.45e2";//12346
$bar1=1+(int)("123.45");//124
$bar2=1+intval("123.45");//124
echo $bar;
echo PHP_EOL;
echo $bar1;
echo PHP_EOL;
echo $bar2;
echo PHP_EOL;
还做了几个其他实验,发现:无论用(int)或者intval,对字符串来说都是截取到第一个非数字(第一个负号除外),包括小数点和“e”。例如”123.45“截取成123
但是用加号(“+“)就会将字符串正确的转换成数字。例如“123.45”转换成123.45
不知道结论是否正确。
另外是否有其他办法将字符串正确转换成数字?
觉得这种不连贯性很不好。
望大神们解答下,谢谢!