PHP算術(shù)運算符是用于執(zhí)行數(shù)學計算的一組特殊符號,例如上學時學到的基本數(shù)據(jù)知識,它們可以對數(shù)值進行加法、減法、標識、乘法、除法和求冪等基本操作,以及對變量進行賦值、取值和邏輯運算等高級操作。
一、算術(shù)運算符
例子 | 名稱 | 結(jié)果 |
+$a | 標識 | 根據(jù)情況將 $a 轉(zhuǎn)化為 int 或 float。 |
-$a | 取反 | $a 的負值。 |
$a + $b | 加法 | $a 和 $b 的和。 |
$a – $b | 減法 | $a 和 $b 的差。 |
$a * $b | 乘法 | $a 和 $b 的積。 |
$a / $b | 除法 | $a 除以 $b 的商。 |
$a % $b | 取模 | $a 除以 $b 的余數(shù)。 |
$a ** $b | 求冪 | $a 的 $b次方的值。 |
二、除法運算符
在大多數(shù)編程語言中,除法運算符通常返回一個浮點數(shù)結(jié)果。這是因為在數(shù)學上,除法運算的結(jié)果可能是一個無限循環(huán)小數(shù),無法精確表示為有限的浮點數(shù)。因此,為了保持精度,除法運算符通常會返回一個浮點數(shù)結(jié)果。
在某些特殊情況下,除法運算符會返回一個整數(shù)結(jié)果。當兩個操作數(shù)都是整數(shù)(或者可以轉(zhuǎn)換為整數(shù))并且它們的商正好是一個整數(shù)時,除法運算符就會返回這個整數(shù)結(jié)果。例如,如果我們使用 intdiv() 函數(shù)進行整數(shù)除法,那么它就會返回一個整數(shù)結(jié)果。
三、取模運算符
取模運算符的操作數(shù)在運算之前都會被轉(zhuǎn)換成整數(shù)。這是因為取模運算實際上是在求一個數(shù)除以另一個數(shù)的余數(shù),而余數(shù)總是一個小于除數(shù)的非負整數(shù)。因此,為了保證結(jié)果的正確性,我們需要將操作數(shù)轉(zhuǎn)換成整數(shù)。
當我們對浮點數(shù)進行取模運算時,我們可以使用 fmod() 函數(shù)。fmod() 函數(shù)會返回兩個浮點數(shù)相除后的余數(shù),即使得結(jié)果盡可能接近于一個整數(shù)。取模運算符 % 的結(jié)果和被除數(shù)的符號(正負號)相同。即 $a % $b 的結(jié)果和 $a 的符號相同。例如:
<?php echo (5 % 3)."\n"; // 打印 2 echo (5 % -3)."\n"; // 打印 2 echo (-5 % 3)."\n"; // 打印 -2 echo (-5 % -3)."\n"; // 打印 -2 ?>
四、數(shù)學符號
- abs : 絕對值;
- acos : 反余弦;
- acosh : 反雙曲余弦;
- asin : 反正弦;
- asinh : 反雙曲正弦;
- atan2 : 兩個參數(shù)的反正切;
- atan : 反正切;
- atanh : 反雙曲正切;
- base_convert : 在任意進制之間轉(zhuǎn)換數(shù)字;
- bindec : 二進制轉(zhuǎn)換為十進制;
- ceil : 進一法取整;
- cos : 余弦;
- cosh : 雙曲余弦;
- decbin : 十進制轉(zhuǎn)換為二進制;
- dechex : 十進制轉(zhuǎn)換為十六進制;
- decoct : 十進制轉(zhuǎn)換為八進制;
- deg2rad : 將角度轉(zhuǎn)換為弧度;
- exp : 計算 e 的指數(shù);
- expm1 : 返回 exp($num) – 1,甚至當 number 的值接近零也能計算出準確結(jié)果;
- fdiv : Divides two numbers, according to IEEE 754;
- floor : 舍去法取整;
- fmod : 返回除法的浮點數(shù)余數(shù);
- hexdec : 十六進制轉(zhuǎn)換為十進制;
- hypot : 計算直角三角形的斜邊長度;
- intdiv : 對除法結(jié)果取整;
- is_finite : 判斷是否為有限值;
- is_infinite : 判斷是否為無限值;
- is_nan : 判斷是否為合法數(shù)值;
- log10 : 以 10 為底的對數(shù);
- log1p : 返回 log(1 + number),甚至當 number 的值接近零也能計算出準確結(jié)果;
- log : 自然對數(shù);
- max : 找出最大值;
- min : 找出最小值;
- octdec : 八進制轉(zhuǎn)換為十進制;
- pi : 得到圓周率值;
- pow : 指數(shù)表達式;
- rad2deg : 將弧度數(shù)轉(zhuǎn)換為相應的角度數(shù);
- round : 對浮點數(shù)進行四舍五入;
- sin : 正弦;
- sinh : 雙曲正弦;
- sqrt : 平方根;
- tan : 正切;
- tanh : 雙曲正切。