echo(float)12,3;与echo(浮动)“12,3”; - 为什么差异?

时间:2016-01-19 14:46:47

标签: php

当我看到这个演员结果时,我最近有点意外。

echo (float)12,3; 
echo "\n"; 
echo (float)"12,3";

第一个会给我们123和第二个12

有什么区别?

3 个答案:

答案 0 :(得分:5)

简单

表示您要以逗号分隔的参数列表发送两个值以进行回显。回复在一起的echo (float)12,3; 12看起来像3。你可以在一次调用中回复数百个事情,PHP并不介意。

123

您正在发送字符串 echo (float)"12,3"; 以在 投射到"12,3"后回显 。当它转换为浮动时,它变为12,你看到它被打印出来。

答案 1 :(得分:2)

区别在于PHP将12,3视为123。 PHP只是删除非数字字符。

var_dump(12,3);
int(12) 
int(3)

"12,3"是一个字符串,PHP会抛出第一个非数字字符后的所有内容。

echo (int)"12b3"; // also outputs 12

答案 2 :(得分:1)

在php中,,也是一个连接运算符,因此12,3被解释为123

但是,

"12,3"是一个字符串,,被视为字符,因此将字符串转换为float会导致12