在PHP中,"aaa" + "bbb"
会生成0
。
我知道要在PHP中连接两个字符串,我需要使用.
。但我不知道为什么PHP中两个字符串的加+
会产生这个结果?
答案 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