为什么在PHP中添加两个字符串的“+”会产生这个结果?

时间:2017-10-25 22:25:37

标签: php string

在PHP中,"aaa" + "bbb"会生成0

我知道要在PHP中连接两个字符串,我需要使用.。但我不知道为什么PHP中两个字符串的加+会产生这个结果?

1 个答案:

答案 0 :(得分:7)

当您对非数字使用算术运算符时,PHP会将它们转换为整数类型。 PHP有点聪明,因此字符串| YEAR | TIMELINE | number | COUNT(DISTINCTITEM_ID) | |------|----------|--------|------------------------| | 2017 | month | 09 | 3 | | 2017 | month | 10 | 2 | | 2017 | quarter | 3 | 3 | | 2017 | quarter | 4 | 2 | | 2017 | week | 35 | 3 | | 2017 | week | 36 | 3 | | 2017 | week | 37 | 3 | | 2017 | week | 38 | 3 | | 2017 | week | 39 | 3 | | 2017 | week | 40 | 2 | | 2017 | week | 41 | 1 | | 2017 | week | 42 | 1 | 将转换为整数"1",字符串1将转换为浮点数,但"1.0"将转换为整数{{1} },以及"aaa"。因此,对0的投射都是"bbb",显然是0

请参阅PHP: String conversion to numbers

从PHP 7.1.0开始,这会生成:

  

警告:遇到非数字值

但是,这很好,因为它们是数字但不是数字类型(字符串):

0 + 0