我想知道在一个值为数字而另一个为字符串的情况下,加法运算如何工作例如:
echo $j = 1 + "stackoverflow";
我尝试执行这个表达式,它输出我 1 .. 有人可以解释我为什么不涉及字符串,如果涉及,那么为什么它转换为 0?
我想知道在一个值为数字而另一个为字符串的情况下,加法运算如何工作例如:
echo $j = 1 + "stackoverflow";
我尝试执行这个表达式,它输出我 1 .. 有人可以解释我为什么不涉及字符串,如果涉及,那么为什么它转换为 0?
stackoverflow
以无数字开头,因此 php 将其设为 0
1stackoverflow
将是 1,因为它以数字 1 开头
如果你这样做,PHP 会尝试解析字符串的整数值。在这种情况下"stackoverflow"
被解析为0
.
您可以通过使用来亲自查看字符串的整数值intval()
。
intval("stackoverflow"); // = 0
intval("123stackoverflow"); // = 123
玩弄它以适应它。
在上述操作中,PHP 将尝试将两个操作数都转换为数字。因此,在这种情况下,“stackoverflow”字符串实际上被转换为数字 - 0。为什么会发生这种情况最好在本手册页中描述 - 将字符串转换为数字。注意
$j = 1 + "1stackoverflow"
将产生 2 作为结果。
因为它尝试将字符串转换为整数,然后将其添加到数字中。echo $j = 1 + intval("stackoverflow");
与如果要将字符串连接到数字基本相同,则必须使用连接运算符,即点:echo $j . "stackoverflow"