*和/之间的优先运算符PHP中的

问题描述:

$c = 8/(12 - 8) * 4; 

echo $c; //output 8 

我在http://php.net/manual/en/language.operators.precedence.php中读取。我认为它应该是8/16而不是8。是否有人帮助我解释,谢谢。*和/之间的优先运算符PHP中的

+0

1 12 - 8 = 4 | 2. 8/4 = 2 | 3.2 * 4 = 8 | 我会说8是正确的 – jrenk

+0

你怎么到8/12? – jgmh

+0

你为什么认为它应该是'8/12'? – axiac

$ c = 8 /(12-8)* 4;

echo $ c; //输出8

由于(12-8)等于4,它将首先执行。在这个执行后,我们将得到

$ c = 8/4 * 4;

在这以后,结果将是2×4 PHP将执行8/4,并给结果2 最后的结果将是8.

在此代码括号将获得第一优先级,则分合最后倍增。

+0

为什么先划分然后乘法?这听起来像是这个分部比乘法有更高的优先级,这是不正确的。 – axiac

+0

@axiac如果它们具有相同的优先级,它们的关联性决定它们如何分组。分部是左联合的,所以他们组合'(8/4)* 4' – jgmh

+0

感谢您的解释 – user2834655

运营商的优先顺序从高分到低分:/ == *>-

()将强制执行优先的最高水平。

具有相同优先级的操作符,操作顺序将从左到右。

这样,操作过程是: <?php $c = 8/(12 - 8) * 4; // Give priority to parentheses inside $c = 8/4 * 4; // 12 - 8 ==> 4 // operators with precedence, from left to right $c = 2 * 4; // 8/4 ==> 2 $c = 8; // 2 * 4 ==> 8

这仅涉及基本的数学运算

+0

感谢您的解释 – user2834655