2012-10-31 28 views
2

我不知道另外的操作如何在一个值的情况下,工作是数字和其他是字符串,例如:PHP-如何算术地添加字符串和数字值?

echo $j = 1 + "stackoverflow"; 

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

回答

2

开始如果你这样做PHP将试图解析字符串的整数值。在这种情况下"stackoverflow"被解析为0

您可以使用intval()来了解字符串的整数值。

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

玩弄它以适应它。

3

stackoverflow开头没有数字那么PHP需要它0

1stackoverflow是1,因为它与数字1

0

因为它试图将字符串转换为整数,然后将其添加到数字。它基本上是相同echo $j = 1 + intval("stackoverflow"); 如果你想字符串拼接的数目,您必须使用连接运算符,即点:echo $j . "stackoverflow"

1

在上面的操作,PHP会尝试两个操作数转换为数字。因此,在这种情况下,“stackoverflow”字符串实际上转换为数字-0。为什么发生这种情况最好在this manual page - converting string to numbers中描述。请注意,

$j = 1 + "1stackoverflow" 

将产生2结果。