2009-07-29 30 views
1

這大概就是這麼簡單,但我仍然不能得到它的工作 我使用這個語句:PHP的echo舉止怪異

echo "$num1"."+"."$num2"."=".$num1+$num2."<BR>"; 

我期待像 3 + 3 = 6 但相反,我只得到6

任何想法爲什麼?

+1

你應該考慮改變這個問題。大家都知道PHP行爲很奇怪。 – spoulson 2009-07-29 17:53:47

回答

10

把parens放在旁邊。這是一個操作衝突的順序。

echo "$num1"."+"."$num2"."=".($num1+$num2)."<BR>"; 

原因是PHP解釋過表達,好像它是:

$a = "$num1"."+"."$num2"."=".$num1; 
$b = $num2."<BR>"; 
echo $a + $b; 

當添加串,PHP試圖cooerce一些出來。 $a字符串中的第一個數字是$num1或「3」。對於$b,獲得$num2或「3」也是如此。因此,$a+$b是6.

-2
echo "$num1"."+"."$num2"."=".($num1).+.($num2)."<BR>"; 

它可能工作!

+0

`($ num1)。+。($ num2)`是無效的語法... – yprez 2012-09-04 13:17:30