$z = "321";
$x = 5;
$y = 10.5;
echo $x+$y*$x;
echo "<br />";
echo "2</br>".$x+$y*$x;
输出:
57.5<br />54.5
我很震惊这个输出是怎么出来的。任何人都可以澄清这个等式吗?
答案 0 :(得分:2)
我会解释一下你的问题:
//$z = "321";
$x = 5;
$y = 10.5;
echo $x+$y*$x;
echo "<br />";
echo "2</br>".$x+$y*$x;
output///57.5 //54.5
你得到不同的结果,因为你在一起添加字符串和int。
echo "2</br>".$x+$y*$x;
表示:
"2</br>5" + (10.5 * $x);
并且php会将字符串转换为int以进行添加。
"2</br>5 will be converted into 2
,结果将是
2 + 52.5
答案 1 :(得分:0)
57.5只是5 + 10.5. * 5
的结果。 54.5有点复杂......
echo "2</br>".$x+$y*$x;
相当于
echo ("2<br />" . $x) + ($y * $x)
,其后,等同于
echo ("2<br />5" + 52.5)
因为PHP将此表达式的左侧转换为+
运算符的数字(请参阅String conversion to numbers),所以最终会得到
echo 2 + 52.5
会产生 54.5 。
答案 2 :(得分:0)
从输出中我假设PHP遵循BIDMAS(括号,指数,除法和乘法,加法和减法),因此:5 + 10.5 * 5等于:5 +(10.5 * 5)= 57.5
至于第二个输出,我无法立即看到输出“54.5”的原因,但我会指出''应该是:
<br/>
<br />
或
<br>