为什么拼接的时候+-操作要加括号?
Why do you have to add parentheses to + - operations when concatenating?
我在写一个小程序的时候遇到了一些奇怪的事情。
如果我想 PHP 使用 echo 语句显示加法或减法的算术运算以及我必须添加括号的运算结果,否则 html 页面不会显示运算而只显示结果.
下面是一个简化的例子。
第一种情况(不带括号):
$a = 10;
$b = 5;
echo "$a + $b = ".$a + $b."<br>"; // 15
echo "$a - $b = ".$a - $b."<br>"; // 5
echo "$a * $b = ".$a * $b."<br>"; // 10 * 5 = 50
echo "$a / $b = ".$a / $b."<br>"; // 10 / 5 = 2
echo "$a % $b = ".$a % $b."<br>"; // 10 % 5 = 0
第二种情况(带括号):
$a = 10;
$b = 5;
echo "$a + $b = ".($a + $b)."<br>"; // 10 + 5 = 15
echo "$a - $b = ".($a - $b)."<br>"; // 10 - 5 = 5
echo "$a * $b = ".($a * $b)."<br>"; // 10 * 5 = 50
echo "$a / $b = ".($a / $b)."<br>"; // 10 / 5 = 2
echo "$a % $b = ".($a % $b)."<br>"; // 10 % 5 = 0
谁能解释为什么会这样?
从 Mark Baker 的 link 你可以看到
Addition, subtraction, and string concatenation have equal precedence!
在echo "$a + $b = ".$a + $b."<br>"; //15
Concatenate the first string literal and the value of $a
, then implicitly convert that to a number (10) so you can add $b
to it, then concatenate the final string literal.
当你把它放在括号中时,加法被视为数字(15)因此没有数学运算与字符串
我在写一个小程序的时候遇到了一些奇怪的事情。 如果我想 PHP 使用 echo 语句显示加法或减法的算术运算以及我必须添加括号的运算结果,否则 html 页面不会显示运算而只显示结果.
下面是一个简化的例子。
第一种情况(不带括号):
$a = 10;
$b = 5;
echo "$a + $b = ".$a + $b."<br>"; // 15
echo "$a - $b = ".$a - $b."<br>"; // 5
echo "$a * $b = ".$a * $b."<br>"; // 10 * 5 = 50
echo "$a / $b = ".$a / $b."<br>"; // 10 / 5 = 2
echo "$a % $b = ".$a % $b."<br>"; // 10 % 5 = 0
第二种情况(带括号):
$a = 10;
$b = 5;
echo "$a + $b = ".($a + $b)."<br>"; // 10 + 5 = 15
echo "$a - $b = ".($a - $b)."<br>"; // 10 - 5 = 5
echo "$a * $b = ".($a * $b)."<br>"; // 10 * 5 = 50
echo "$a / $b = ".($a / $b)."<br>"; // 10 / 5 = 2
echo "$a % $b = ".($a % $b)."<br>"; // 10 % 5 = 0
谁能解释为什么会这样?
从 Mark Baker 的 link 你可以看到
Addition, subtraction, and string concatenation have equal precedence!
在echo "$a + $b = ".$a + $b."<br>"; //15
Concatenate the first string literal and the value of
$a
, then implicitly convert that to a number (10) so you can add$b
to it, then concatenate the final string literal.
当你把它放在括号中时,加法被视为数字(15)因此没有数学运算与字符串