2

我想知道在一个值为数字而另一个为字符串的情况下,加法运算如何工作例如:

echo $j = 1 + "stackoverflow";

我尝试执行这个表达式,它输出我 1 .. 有人可以解释我为什么不涉及字符串,如果涉及,那么为什么它转换为 0?

4

4 回答 4

3

stackoverflow以无数字开头,因此 php 将其设为 0

1stackoverflow将是 1,因为它以数字 1 开头

于 2012-10-31T10:26:25.753 回答
2

如果你这样做,PHP 会尝试解析字符串的整数值。在这种情况下"stackoverflow"被解析为0.

您可以通过使用来亲自查看字符串的整数值intval()

intval("stackoverflow"); // = 0
intval("123stackoverflow"); // = 123

玩弄它以适应它。

于 2012-10-31T10:26:43.613 回答
1

在上述操作中,PHP 将尝试将两个操作数都转换为数字。因此,在这种情况下,“stackoverflow”字符串实际上被转换为数字 - 0。为什么会发生这种情况最好在本手册页中描述 - 将字符串转换为数字。注意

$j = 1 + "1stackoverflow"

将产生 2 作为结果。

于 2012-10-31T10:29:37.753 回答
0

因为它尝试将字符串转换为整数,然后将其添加到数字中。echo $j = 1 + intval("stackoverflow"); 与如果要将字符串连接到数字基本相同,则必须使用连接运算符,即点:echo $j . "stackoverflow"

于 2012-10-31T10:28:23.583 回答