Php 简明教程
PHP – Maths Functions
为启用数学运算,PHP 具有数学(算术)运算符和许多数学函数。在本章中,将通过示例说明以下数学函数。
PHP abs() Function
abs() 函数是 PHP 解释器的内置函数。此函数接受任意数字作为参数并返回一个正值,而不考虑其符号。任何数字的绝对值始终为正。
abs( mixed $num)
PHP abs() 函数返回 num 的绝对值。如果 num 的数据类型是浮点数,它的返回类型也将是浮点数。对于整数参数,返回类型为整数。
Example
请查看以下示例:
<?php
$num=-9.99;
echo "negative float number: " . $num . "\n";
echo "absolute value : " . abs($num) . "\n";
$num=25.55;
echo "positive float number: " . $num . "\n";
echo "absolute value : " . abs($num). "\n";
$num=-45;
echo "negative integer number: " . $num . "\n";
echo "absolute value : " . abs($num) . "\n";
$num=25;
echo "positive integer number: " . $num . "\n";
echo "absolute value : " . abs($num);
?>
它将生成以下 output −
negative float number: -9.99
absolute value : 9.99
positive float number: 25.55
absolute value : 25.55
negative integer number: -45
absolute value : 45
positive integer number: 25
absolute value : 25
PHP ceil() Function
ceil() 函数是 PHP 解释器的内置函数。此函数接受任意浮点数作为参数并将其四舍五入到下一个最高整数。此函数始终返回一个浮点数,因为浮点数的范围大于整数范围。
ceil ( float $num ) : float
PHP ceil() 函数返回大于或等于给定参数的最小整数值。
Example 1
以下代码将 5.78 四舍五入到其下一个最高整数 6
<?php
$arg=5.78;
$val=ceil($arg);
echo "ceil(" . $arg . ") = " . $val;
?>
它将生成以下 output −
ceil(5.78) = 6
PHP exp() Function
exp() 函数计算欧拉数 e 的指数。PHP 有一个预定义常量 M_E,表示欧拉数,等于 2.7182818284590452354。因此,exp(x) 返回 2.7182818284590452354x
此函数始终返回一个浮点数。
exp ( float $arg ) : float
PHP exp() 函数返回提升到给定 arg. 的欧拉数 e。请注意, e 是自然算法的底数。exp() 函数是自然对数的逆函数。
PHP floor() Function
floor() 函数是 PHP 解释器中的另一个内置函数。此函数接受任意浮点数字作为参数,并根据其向下取整到最接近的整数。此函数始终返回浮点数,因为浮点值的范围大于整数值的范围。
floor ( float $num ) : float
PHP floor() 函数返回不小于给定参数的最大整数。
Example 1
以下示例展示了如何将 15.05 舍入至下一个最大整数,即 15
<?php
$arg=15.05;
$val=floor($arg);
echo "floor(" . $arg . ") = " . $val;
?>
它将生成以下 output −
floor(15.05) = 15
PHP intdiv() Function
intdiv() 函数返回两个整型参数的整数商。如果 x/y 除法结果为“i”,余数为“r”,则为 −
x = y*i+r
在这种情况下,intdiv(x,y) 返回“i”
intdiv ( int $x , int $y ) : int
“x”参数是除法表达式的分子部分,而“y”参数是除法表达式的分母部分。
PHP intdiv() 函数返回“x”除以“y”的整数商。如果两个参数都是正数或都是负数,则返回值为正数。
Example 1
以下示例表明,如果分子小于分母,则 intdiv() 函数返回 0。
<?php
$x=10;
$y=3;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
$r=intdiv($y, $x);
echo "intdiv(" . $y . "," . $x . ") = " . $r;
?>
它将生成以下 output −
intdiv(10,3) = 3
intdiv(3,10) = 0
Example 2
在以下示例中,intdiv() 函数返回负数,因为分子或分母是负数。
<?php
$x=10;
$y=3;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
$x=10;
$y=-3;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
$x=-10;
$y=3;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
$x=-10;
$y=-3;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r ;
?>
它将生成以下 output −
intdiv(10,3) = 3
intdiv(10,-3) = -3
intdiv(-10,3) = -3
intdiv(-10,-3) = 3
PHP log10() Function
log10 () 函数计算某个数字的以 10 为底的对数。以 10 为底的对数也称为 common 或 standard algorithm 。log10(x) 函数计算 log10x。它与自然算法之间的关系由以下等式表示 −
log10x=logex/loge10 ; So that
log10100=loge100/loge10 = 2
在 PHP 中, log10 由 log10() 函数表示
log10 ( float $arg ) : float
PHP log10() 函数返回 arg 的以 10 为底的对数。
Example 1
以下代码计算 100 的以 10 为底的对数
<?php
$arg=100;
echo "log10(" . $arg. ")=" . log10($arg) . "";
?>
它将生成以下 output −
log10(100)=2
Example 2
以下代码计算欧拉数 M_E 的以 10 为底的对数。结果等于预定义的常数 M_LOG10E
<?php
$arg=M_E;
echo "log10(" . $arg. ")=" . log10($arg) . "\n";
echo "predefined constant M_LOG10E=" . M_LOG10E;
?>
它将生成以下 output −
log10(2.718281828459)=0.43429448190325
predefined constant M_LOG10E=0.43429448190325
PHP max() Function
max() 函数返回数组中最大的元素,或者返回两个或两个以上逗号分隔参数中最大的参数。
max ( array $values ) : mixed
或者,
max ( mixed $value1 [, mixed $... ] ) : mixed
-
如果只给出了一个参数,则它应该是可能具有相同或不同类型的值的数组。
-
如果给出了两个或更多参数,则它们应该是具有相同或不同类型的任何可比较值。
PHP max() 函数返回数组参数或值序列中的最大值。标准比较运算符适用。如果不同类型的值有多个被评估为相等(例如 0 和’PHP'),则将返回函数的第一个参数。
Example 1
下面的代码返回数字数组中的最大值。
<?php
$arg=array(23, 5.55, 142, 56, 99);
echo "array=";
foreach ($arg as $i) echo $i . ",";
echo "\n";
echo "max = " . max($arg);
?>
它将生成以下 output −
array=23,5.55,142,56,99,
max = 142
Example 2
下面的代码返回字符串数组中的 max()。
<?php
$arg=array("Java", "Angular", "PHP", "C", "Kotlin");
echo "array=";
foreach ($arg as $i) echo $i . ",";
echo "\n";
echo "max = " . max($arg);
?>
它将生成以下 output −
array=Java,Angular,PHP,C,Kotlin,
max = PHP
Example 3
在下面的示例中,向 max() 函数提供了一系列字符串值。让我们看看它如何表现 −
<?php
$val1="Java";
$val2="Angular";
$val3="PHP";
$val4="C";
$val5="Kotlin";
echo "values=" . $val1 . "," . $val2 . "," . $val3 . "," . $val4 . "," . $val5 . "\n";
echo "max = " . max($val1, $val2, $val3,$val4,$val5);
?>
它将生成以下 output −
values=Java,Angular,PHP,C,Kotlin
max = PHP
PHP min() Function
min() 函数返回数组中最小的元素,或者返回两个或两个以上逗号分隔参数中最小的参数。
min ( array $values ) : mixed
或者,
min ( mixed $value1 [, mixed $... ] ) : mixed
-
如果只给出了一个参数,则它应该是可能具有相同或不同类型的值的数组
-
如果给出了两个或更多参数,则它们应该是具有相同或不同类型的任何可比较值
PHP min() 函数返回数组参数或值序列中的最小值。标准比较运算符适用。如果不同类型的值有多个被评估为相等(例如 0 和’PHP'),则将返回函数的第一个参数
Example 1
下面的代码返回数字数组中的最小值。
<?php
$arg=array(23, 5.55, 142, 56, 99);
echo "array=";
foreach ($arg as $i) echo $i . ",";
echo "\n";
echo "min = " . min($arg);
?>
它将生成以下 output −
array=23,5.55,142,56,99,
min = 5.55
Example 2
下面的代码返回字符串数组中的 min()。
<?php
$arg=array("Java", "Angular", "PHP", "C", "Kotlin");
echo "array=";
foreach ($arg as $i) echo $i . ",";
echo "\n";
echo "min = " . min($arg);
?>
它将生成以下 output −
array=Java,Angular,PHP,C,Kotlin,
min = Angular
Example 3
此示例中,向 min() 函数提供了一系列字符串值。
<?php
$val1="Java";
$val2="Angular";
$val3="PHP";
$val4="C";
$val5="Kotlin";
echo "values=" . $val1 . "," . $val2 . "," . $val3 . "," . $val4 . "," . $val5 . "\n";
echo "min = " . min($val1, $val2, $val3,$val4,$val5);
?>
它将生成以下 output −
values=Java,Angular,PHP,C,Kotlin
min = Angular
PHP pow() Function
pow () 函数用于计算某个数的幂。它返回 xy 计算,也称为将 x 提升到 y。PHP 还提供了“**”作为指数运算符。
因此,pow(x,y) 返回 xy,与 x**y 相同。
pow ( number $base , number $exp ) : number
第一个参数是要提升的底数。第二个参数是需要将底数提升到的幂。
PHP pow() 函数返回以 exp 的幂次升高的基数。如果两个参数都是非负整数,则结果将以整数形式返回,否则以浮点数形式返回。
Example 1
以下示例使用 pow() 函数计算 102:
<?php
echo "pow(10,2) = " . pow(10,2);
echo " using ** operator " . 10**2;
?>
它将生成以下 output −
pow(10,2) = 100 using ** operator 100
Example 2
将任何数字升至 0 次方得到的结果都是 1。以下示例对此进行了验证:
<?php
$x=10;
$y=0;
echo "pow(" . $x, "," . $y . ")=". pow($x,$y);
?>
它将生成以下 output −
pow(10,0)=1
PHP round() Function
round() 函数可用于将任意浮点数四舍五入到所需精度级别。正精度参数使数字在小数点后四舍五入;而负精度导致数字在小数点前四舍五入。精度默认为“0”。
例如,round(10.6) 返回 11,round(10.2) 返回 10。此函数始终返回浮点数。
该函数还有另一个可选参数,称为 mode ,它采用稍后描述的重新定义的常量之一。
round ( float $value , int $precision , int $mode ) : float
Parameters
-
Value - 要舍入的浮点数。
-
Precision - 要舍入为几位小数。默认为 0。正精度在小数点后舍入给定的数字。负精度在小数点前舍入给定的数字。
-
Mode - 下列预定义常量之一。
Sr.No |
Constant & Description |
1 |
PHP_ROUND_HALF_UP 当数字达到一半时,舍入为远离 0。因此,1.5 变为 2,-1.5 变为 -2 |
2 |
PHP_ROUND_HALF_DOWN 当数字达到一半时,舍入为靠近 0。因此 1.5 变为 1,-1.5 变为 -1 |
3 |
PHP_ROUND_HALF_EVEN 将数字舍入到最接近的偶数值 |
4 |
PHP_ROUND_HALF_ODD 将数字舍入到最接近的奇数值 |
PHP round() 函数返回一个浮点数,方法是将该值四舍五入到所需的精度。
Example 1
以下代码将给定数字舍入到正精度值:
<?php
$arg=1234.567;
echo "round(" . $arg . ") = " . round($arg) . "\n";
echo "round(" . $arg . ",1) = " . round($arg,1) . "\n";
echo "round(" . $arg . ",2) = " . round($arg,2) . "";
?>
它将生成以下 output −
round(1234.567) = 1235
round(1234.567,1) = 1234.6
round(1234.567,2) = 1234.57
Example 2
以下代码将数字舍入到负精度值:
<?php
$arg=1234.567;
echo "round(" . $arg . ") = " . round($arg) . "\n";
echo "round(" . $arg . ",-1) = " . round($arg,-1) . "\n";
echo "round(" . $arg . ",-2) = " . round($arg,-2) . "";
?>
它将生成以下 output −
round(1234.567) = 1235
round(1234.567,-1) = 1230
round(1234.567,-2) = 1200
PHP sqrt() Function
sqrt() 函数返回正浮点数的平方根。由于负数的平方根未定义,因此它返回 NAN。这是最常用的函数之一。此函数始终返回浮点数。
sqrt (float $arg) : float
PHP sqrt() 函数返回给定 arg 数字的平方根。对于负数,该函数返回 NAN。
Example 1
以下代码计算 100 的平方根 −
<?php
$arg = 100;
echo "Square root of " . $arg . "=" . sqrt($arg) . "";
?>
它将生成以下 output −
Square root of 100=10
Example 2
对于 sqrt(2)、1/sqrt(2) 和 sqrt(3),PHP 分别有特殊预定义常量 M_SQRT2、M_SQRT1_2 和 M_SQRT3。
<?php
echo "sqrt(2) = " . sqrt(2) . "\n";
echo "M_SQRT2 = " . M_SQRT2. "\n";
echo "sqrt(3) = " . sqrt(3) . "\n";
echo "M_SQRT3 = " . M_SQRT3 . "\n";
echo "1/sqrt(2)) = " . 1/sqrt(2) . "\n";
echo "M_SQRT1_2 = " . M_SQRT1_2 . "";
?>
它将生成以下 output −
sqrt(2) = 1.4142135623731
M_SQRT2 = 1.4142135623731
sqrt(3) = 1.7320508075689
M_SQRT3 = 1.7320508075689
1/sqrt(2)) = 0.70710678118655
M_SQRT1_2 = 0.70710678118655
Example 3
数学常量 M_SQRTPI 和 M_2_SQRTPI 分别表示 sqrt(Π) 和 2/sqrt(Π) 的值。
<?php
echo "sqrt(pi) = " . sqrt(M_PI) . "\n";
echo "M_SQRTPI = " . M_SQRTPI. "\n";
echo "2/sqrt(pi) = " . 2/sqrt(M_PI) . "\n";
echo "M_2_SQRTPI = " . M_2_SQRTPI . "";
?>
它将生成以下 output −
sqrt(pi) = 1.7724538509055
M_SQRTPI = 1.7724538509055
2/sqrt(pi) = 1.1283791670955
M_2_SQRTPI = 1.1283791670955
Predefined Mathematical Constants
除了上述数学函数外,PHP 还有以下预定义数学常量 −
Constant |
Value |
Description |
M_PI |
3.14159265358979323846 |
Pi |
M_E |
2.7182818284590452354 |
Euler Number e |
M_LOG2E |
1.4426950408889634074 |
log2 e |
M_LOG10E |
0.43429448190325182765 |
log10 e |
M_LN2 |
0.69314718055994530942 |
loge 2 |
M_LN10 |
M_LN10 2.30258509299404568402 loge 10 |
loge 10 |
M_PI_2 |
1.57079632679489661923 |
pi/2 |
M_PI_4 |
0.78539816339744830962 |
pi/4 |
M_1_PI |
0.31830988618379067154 |
1/pi |
M_2_PI |
0.63661977236758134308 |
2/pi |
M_SQRTPI |
1.77245385090551602729 |
sqrt(pi) |
M_2_SQRTPI |
1.12837916709551257390 |
2/sqrt(pi) |
M_SQRT2 |
1.41421356237309504880 |
sqrt(2) |
M_SQRT3 |
1.73205080756887729352 |
sqrt(3) |
M_SQRT1_2 |
0.70710678118654752440 |
1/sqrt(2) |
M_LNPI |
1.14472988584940017414 |
loge(pi) |
M_EULER |
0.57721566490153286061 |
Euler constant |
PHP_ROUND_HALF_UP |
1 |
Round halves up |
PHP_ROUND_HALF_DOWN |
2 |
Round halves down |
PHP_ROUND_HALF_EVEN |
3 |
将一半舍入到偶数 |
PHP_ROUND_HALF_ODD |
4 |
将一半舍入到奇数 |
NAN |
NAN |
Not A Number |
INF |
INF |
Infinity |