2017-05-22 180 views
-7

據我所知算術運算符,下面的代碼應該輸出15,但它輸出11,不知道爲什麼。任何幫助,將不勝感激算術運算符的邏輯?

echo $total = 3 - 1 * 2 + 10; //outputs: 11 
+3

數學的標準規則(又名BODMAS):括號,除法/乘法,加法/減法 –

+1

您必須瞭解BODMAS。將括號中的算術放在括號內,因爲括號的優先級高於其他所有內容。 – Dan

+3

爲什麼你會認爲它會評估爲15? –

回答

0

它從右向左,* /%第一 - +: - 後2 1 + 10

正如@ delboy1978uk所述3

1 * 2後,使用方括號來打破常用的優先順序。

PHP page about that operatorstheir precedence

+1

不知道你在這裏說什麼輸出..我認爲你有一個錯字..'3-2'不是'2-3' –

+0

是,是一個錯字,謝謝! – calexandre

0

使用一些括號!

$total = ((3 - 1) * 2) + 10; // outputs 14 
$total = 3 - (1 * 2) + 10; // outputs 11 
$total = (3 - 1) * (2 + 10); // outputs 24 

你明白了!

+0

$ total = 3 - (1 * 2)+10; //輸出11如何得到這個 –

+0

括號內的位首先被計算出來,給我們3 - 2 + 10,等於11. – delboy1978uk

+0

括號內執行加法運算(BODMAS) –