我想知道如果一个值是数字而另一个值是字符串,则加法的操作如何工作例如:
echo $j = 1 + "stackoverflow";
我尝试执行这个表达式,它输出我1 ..有人可以解释为什么字符串不参与其中,如果它涉及那么为什么它被转换为0?
答案 0 :(得分:3)
stackoverflow
以无数字开头,因此php将其取为0
1stackoverflow
将为1,因为它以数字1开头
答案 1 :(得分:2)
如果这样做,PHP会尝试解析字符串的整数值。在这种情况下,"stackoverflow"
被解析为0
。
您可以使用intval()
自己查看字符串的整数值。
intval("stackoverflow"); // = 0
intval("123stackoverflow"); // = 123
玩它来习惯它。
答案 2 :(得分:1)
在上面的操作中,PHP将尝试将两个操作数转换为数字。因此,在这种情况下,“stackoverflow”字符串实际上转换为数字-0。为什么会发生这种情况最好在this manual page - converting string to numbers中说明。注意
$j = 1 + "1stackoverflow"
将产生2作为结果。
答案 3 :(得分:0)
因为它试图将字符串转换为整数,然后将其添加到数字中。它与echo $j = 1 + intval("stackoverflow");
基本相同
如果要将字符串连接到数字,则必须使用连接运算符,即点:echo $j . "stackoverflow"