剛剛遇到這個問題,你介意解釋這最終有4的答案? 如此基本但我不知道它是如何發生的。PHP的基本操作符
echo $a = 20%-8; //4
答:
echo (5 % 3)."\n"; // prints 2
echo (5 % -3)."\n"; // prints 2
echo (-5 % 3)."\n"; // prints -2
echo (-5 % -3)."\n"; // prints -2
剛剛遇到這個問題,你介意解釋這最終有4的答案? 如此基本但我不知道它是如何發生的。PHP的基本操作符
echo $a = 20%-8; //4
答:
echo (5 % 3)."\n"; // prints 2
echo (5 % -3)."\n"; // prints 2
echo (-5 % 3)."\n"; // prints -2
echo (-5 % -3)."\n"; // prints -2
你試圖得到一個負數的模。有這一點,並沒有什麼區別:20%8
參見:https://math.stackexchange.com/questions/519845/modulo-of-a-negative-number
%運營商將離開操作的提醒。即$x % $y
將導致$x
的餘數除以$y
。
這裏,當由20分-8,它會留下提醒4這就是答案。
求餘運算符返回餘留下來當一個操作數由第二個操作數分開。請記住模運營商的結果總是會帶來紅利的標誌,而不是除數。它使用一個內置的模函數來產生結果,這是將var1除以var2所得的整數餘數。
因此,這裏在代碼中Var1爲20是正整數,VAR2是-8,這是負整數。 20是紅利,-8是除數。
所以正如我們所知道的模塊操作的結果會採取分紅,而不是除數的符號。這就是爲什麼提醒答案將只是4. 希望所以現在很清楚。謝謝
'%'是模運算符,是整數除法的餘數。當用20除以-8時,整數餘數爲4. – 2014-11-03 09:05:41