- PHP 教程
- PHP - 教程
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 功能
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - 回显/打印
- PHP - var_dump() 函数
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP – 数据类型
- PHP - 类型转换
- PHP - 类型戏法
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件和I/O
- PHP – 数学函数
- PHP - Heredoc & Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期和时间
- PHP - 标量类型声明
- PHP 运算符
- PHP - 运算符类型
- PHP - 算术运算符示例
- PHP - 比较运算符示例
- PHP - 逻辑运算符示例
- PHP - 赋值运算符示例
- PHP – 字符串运算符
- PHP – 数组运算符
- PHP – 条件运算符示例
- PHP - Spread 运算符
- PHP - Null 合并运算符
- PHP - Spaceship 运算符
- PHP 控制语句
PHP – 数学函数
为了实现数学运算,PHP 具有数学(算术)运算符和许多数学函数。在本章中,通过示例解释了以下数学函数。
PHP abs() 函数
abs() 函数是 PHP 迭代器中的内置函数。此函数接受任何数字作为参数并返回正值,而不考虑其符号。任何数字的绝对值始终为正数。
abs( mixed $num)
PHP abs() 函数返回 num 的绝对值。如果 num 的数据类型为 float,则其返回类型也将为 float。对于 integer 参数,返回类型为 integer。
例看看下面的例子 -
<?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);
?>
它将产生以下输出 -
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() 函数
ceil() 函数是 PHP 迭代器中的内置函数。此函数接受任何浮点数作为参数,并将其四舍五入到下一个最高的整数。此函数始终返回一个浮点数,因为 float 的范围大于整数的范围。
ceil ( float $num ) : float
PHP ceil() 函数返回大于或等于给定参数的最小整数值。
示例 1
以下代码将 5.78 四舍五入为其下一个最高整数,即 6
<?php
$arg=5.78;
$val=ceil($arg);
echo "ceil(" . $arg . ") = " . $val;
?>
它将产生以下输出 -
示例 2
以下示例显示如何查找下一个最高整数 15.05。
<?php
$arg=15.05;
$val=ceil($arg);
echo "ceil(" . $arg . ") = " . $val;
?>
它将产生以下输出 -
示例 3
对于负数,它四舍五入到 0。
<?php
$arg=-3.95;
$val=ceil($arg);
echo "ceil(" . $arg . ") = " . $val;
?>
它将产生以下输出 -
PHP exp() 函数
exp() 函数计算 e 的指数,即欧拉数。PHP 有一个预定义的常数M_E,它表示欧拉数,等于 2.7182818284590452354。因此,exp(x) 返回 2.7182818284590452354x
此函数始终返回浮点数。
exp ( float $arg ) : float
PHP exp() 函数返回 e 的给定 arg 的欧拉数。请注意,e 是自然算法的基础。exp() 函数是自然对数的逆函数。
示例 1
PHP 中的预定义常量之一是 M_LN2,它代表 loge2,等于 0.69314718055994530942。因此,该值的 exp() 将返回 2。
<?php
echo "exp(" . M_LN2 . ") = " . exp(M_LN2);
?>
它将产生以下输出 -
示例 2
M_LN10 是另一个表示 loge10 的预定义常量。该程序计算 exp(M_LN10) 并返回 10。
<?php
echo "exp(" . M_LN10 . ") = " . exp(M_LN10);
?>
它将产生以下输出 -
PHP floor() 函数
floor() 函数是 PHP 解释器中的另一个内置函数。此函数接受任何浮点数作为参数,并将其向下舍入到下一个最低整数。此函数始终返回一个浮点数,因为 float 的范围大于整数的范围。
floor ( float $num ) : float
PHP floor() 函数返回小于或等于给定参数的最大整数。
示例 1
以下示例显示如何将 15.05 舍入为其下一个最高整数,即 15
<?php
$arg=15.05;
$val=floor($arg);
echo "floor(" . $arg . ") = " . $val;
?>
它将产生以下输出 -
示例 2
以下示例显示如何查找下一个最低整数 5.78。
<?php
$arg=5.78;
$val=floor($arg);
echo "floor(" . $arg . ") = " . $val;
?>
它将产生以下输出 -
示例 3
负数从 0 开始四舍五入。
<?php
$arg=-3.95;
$val=floor($arg);
echo "floor(" . $arg . ") = " . $val;
?>
它将产生以下输出 -
PHP intdiv() 函数
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” 的整数商。如果两个参数均为正或两个参数均为负,则返回值为正。
示例 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;
?>
它将产生以下输出 -
intdiv(3,10) = 0
示例 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 ;
?>
它将产生以下输出 -
intdiv(10,-3) = -3
intdiv(-10,3) = -3
intdiv(-10,-3) = 3
示例 3
在下面的示例中,Denominator 为 0。这会导致 DivisionByZeroError 异常。
<?php
$x=10;
$y=0;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
?>
它将产生以下输出 -
示例 4
两个参数中的小数部分都将被忽略。PHP intdiv() 函数仅适用于整数部分。
<?php
$x=2.90;
$y=1.90;
$r=intdiv($x, $y);
echo "intdiv(" . $x . "," . $y . ") = " . $r . "";
?>
它将产生以下输出 -
PHP log10() 函数
log10 () 函数计算数字的以 10 为底的对数。以 10 为底的对数也称为通用算法或标准算法。log10(x) 函数计算 log10x。它与自然算法的关系如下 -
log10x=logex/loge10 ; So that
log10100=loge100/loge10 = 2
在 PHP 中,log10 由 log10() 函数表示
log10 ( float $arg ) : float
PHP log10() 函数返回 arg 的以 10 为底的对数。
示例 1
以下代码计算以 100 为基数的 10 对数
<?php
$arg=100;
echo "log10(" . $arg. ")=" . log10($arg) . "";
?>
它将产生以下输出 -
示例 2
以下代码计算欧拉数 M_E 的以 10 为底的对数。结果等于预定义的常量 M_LOG10E
<?php
$arg=M_E;
echo "log10(" . $arg. ")=" . log10($arg) . "\n";
echo "predefined constant M_LOG10E=" . M_LOG10E;
?>
它将产生以下输出 -
predefined constant M_LOG10E=0.43429448190325
示例 3
以下代码计算 log100 并返回 -∞。
<?php
$arg=0;
echo "log10(" . $arg. ")=" . log10($arg) . "";
?>
它将产生以下输出 -
示例 4
类似地,sqrt(-1) 会得到 NAN。因此,它的 log10() 也返回 NAN。
<?php
$arg=sqrt(-1);
echo "log10(" . $arg. ")=" . log10($arg) . "";
?>
它将产生以下输出 -
PHP max()函数
max () 函数返回数组中最高的元素,或者两个或多个逗号分隔参数中最高的元素。
max ( array $values ) : mixed
或
max ( mixed $value1 [, mixed $... ] ) : mixed
- 如果只给出一个参数,它应该是一个值数组,这些值可以是相同或不同类型的。
- 如果给出了两个或多个参数,则它们应该是相同或不同类型的任何可比较值。
PHP max() 函数返回数组参数或值序列中的最大值。标准比较运算符适用。如果多个不同类型的值计算相等(例如 0 和 'PHP'),则将返回函数的第一个参数。
示例 1
以下代码返回数值数组中的最大值。
<?php
$arg=array(23, 5.55, 142, 56, 99);
echo "array=";
foreach ($arg as $i) echo $i . ",";
echo "\n";
echo "max = " . max($arg);
?>
它将产生以下输出 -
max = 142
示例 2
以下代码从字符串数组中返回 max()。
<?php
$arg=array("Java", "Angular", "PHP", "C", "Kotlin");
echo "array=";
foreach ($arg as $i) echo $i . ",";
echo "\n";
echo "max = " . max($arg);
?>
它将产生以下输出 -
max = PHP
示例 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);
?>
它将产生以下输出 -
max = PHP
示例 4
在此示例中,给定的数组是混合数据类型的集合。
<?php
$arg=array(23, "Java", 142, 1e2, 99);
echo "array=";
foreach ($arg as $i) echo $i . ",";
echo "\n";
echo "max = " . max($arg);
?>
它将产生以下输出 -
max = 142
PHP min() 函数
min () 函数返回数组中最低的元素,或两个或多个逗号分隔参数中最低的元素。
min ( array $values ) : mixed
或
min ( mixed $value1 [, mixed $... ] ) : mixed
- 如果只给出一个参数,它应该是一个值数组,这些值可以是相同或不同类型的
- 如果给出了两个或多个参数,则它们应该是相同或不同类型的任何可比较值
PHP min() 函数返回数组参数或值序列中的最低值。标准比较运算符适用。如果多个不同类型的值计算相等(例如 0 和 'PHP'),则将返回函数的第一个参数
示例 1
以下代码返回数值数组中的最小值。
<?php
$arg=array(23, 5.55, 142, 56, 99);
echo "array=";
foreach ($arg as $i) echo $i . ",";
echo "\n";
echo "min = " . min($arg);
?>
它将产生以下输出 -
min = 5.55
示例 2
下面的代码从字符串数组中返回 min()。
<?php
$arg=array("Java", "Angular", "PHP", "C", "Kotlin");
echo "array=";
foreach ($arg as $i) echo $i . ",";
echo "\n";
echo "min = " . min($arg);
?>
它将产生以下输出 -
min = Angular
示例 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);
?>
它将产生以下输出 -
min = Angular
示例 4
在此示例中,给定的数组是混合数据类型的集合。
<?php
$arg=array(23, "Java", 142, 1e2, 99);
echo "array=";
foreach ($arg as $i) echo $i . ",";
echo "\n";
echo "min = " . min($arg);
?>
它将产生以下输出 -
min = 23
PHP pow()函数
pow () 函数用于计算某个数字的幂。它返回 xy 计算,也称为 x 提升到 y. PHP 也提供 “**” 作为幂运算符。
因此,pow(x,y) 返回与 x**y 相同的 xy。
pow ( number $base , number $exp ) : number
第一个参数是要引发的基数。第二个参数是需要提高到的 base 的幂。
PHP pow() 函数返回 exp 的幂的基数。如果两个参数都是非负整数,则结果将返回为 integer,否则将返回为 float。
示例 1
以下示例使用 pow() 函数计算 102 −
<?php
echo "pow(10,2) = " . pow(10,2);
echo " using ** operator " . 10**2;
?>
它将产生以下输出 -
示例 2
任何提高到 0 的数字都会导致 1。这在以下示例中得到了验证 -
<?php
$x=10;
$y=0;
echo "pow(" . $x, "," . $y . ")=". pow($x,$y);
?>
它将产生以下输出 -
示例 3
以下示例显示了如何使用 pow() 函数计算 100 的平方根 -
<?php
$x=100;
$y=0.5;
echo "pow(" . $x, "," . $y . ")=". pow($x,$y) . "\n";
echo "using sqrt() function : ". sqrt(100);
?>
它将产生以下输出 -
using sqrt() function : 10
示例 4
此示例说明如何使用 pow() 函数计算圆的面积。
<?php
$radius=5;
echo "radius = " . $radius . " area = " . M_PI*pow(5,2);
?>
它将产生以下输出 -
PHP round()函数
round() 函数被证明可用于将任何浮点数四舍五入到所需的精度级别。正精度参数会导致数字在小数点后四舍五入;而负精度时,舍入发生在小数点之前。默认情况下,精度为 “0”。
例如,round(10.6) 返回 11,round(10.2) 返回 10。该函数始终返回浮点数。
此函数还有另一个名为 mode 的可选参数,该参数采用稍后描述的重新定义常量之一。
round ( float $value , int $precision , int $mode ) : float
参数
- value − 要四舍五入的浮点数。
- precision − 要舍入到的十进制位数。默认值为 0。正精度将给定的数字舍入到小数点后。负精度将给定数字四舍五入到小数点之前。
- Mode - 以下预定义常量之一。
常数 | 描述 |
---|---|
PHP_ROUND_HALF_UP |
当 0 到达一半时,将数字舍入到 0 之外。因此,1.5 变为 2,-1.5 变为 -2 |
PHP_ROUND_HALF_DOWN |
当数字到达一半时,将数字舍入到 0 处。因此 1.5 变为 1,-1.5 变为 -1 |
PHP_ROUND_HALF_EVEN |
将数字四舍五入到最接近的偶数值 |
PHP_ROUND_HALF_ODD |
将数字四舍五入到最接近的奇数值 |
PHP round() 函数通过将值四舍五入到所需的精度来返回一个浮点数。
示例 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) . "";
?>
它将产生以下输出 -
round(1234.567,1) = 1234.6
round(1234.567,2) = 1234.57
示例 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) . "";
?>
它将产生以下输出 -
round(1234.567,-1) = 1230
round(1234.567,-2) = 1200
示例 3
以下代码使用 UP 和 DOWN 模式常量进行舍入 -
<?php
echo "round(3.45,HALF_UP) = " . round(3.45,0, PHP_ROUND_HALF_UP) . "\n";
echo "round(3.75 HALF_UP) = " . round(3.75, 1, PHP_ROUND_HALF_DOWN) . "";
?>
它将产生以下输出 -
round(3.75 HALF_UP) = 3.7
示例 4
以下代码使用 ODD 和 EVEN 模式进行舍入 -
<?php
echo "round( 3.45,HALF_ODD) = " . round(3.45,0, PHP_ROUND_HALF_ODD) . "\n";
echo "round(3.78 HALF_EVEN) = " . round(3.78, 0, PHP_ROUND_HALF_EVEN) . "";
?>
它将产生以下输出 -
round(3.78, HALF_EVEN) = 4
PHP sqrt() 函数
sqrt() 函数返回正浮点数的平方根。由于未定义负数的平方根,因此返回 NAN。这是最常用的函数之一。此函数始终返回浮点数。
sqrt (float $arg) : float
PHP sqrt() 函数返回给定 arg 数的平方根。对于负数,该函数返回 NAN。
示例 1
以下代码计算 100 的平方根 -
<?php
$arg = 100;
echo "Square root of " . $arg . "=" . sqrt($arg) . "";
?>
它将产生以下输出 -
示例 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 . "";
?>
它将产生以下输出 -
M_SQRT2 = 1.4142135623731
sqrt(3) = 1.7320508075689
M_SQRT3 = 1.7320508075689
1/sqrt(2)) = 0.70710678118655
M_SQRT1_2 = 0.70710678118655
示例 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 . "";
?>
它将产生以下输出 -
M_SQRTPI = 1.7724538509055
2/sqrt(pi) = 1.1283791670955
M_2_SQRTPI = 1.1283791670955
示例 4
sqrt(-1) 未定义,因此返回 NAN。
<?php
echo "sqrt(-1) = " . sqrt(-1) . "";
?>
它将产生以下输出 -
预定义的数学常数
除了上述数学函数外,PHP 还有以下预定义的数学常数列表 -
常数 | 值 | 描述 |
---|---|---|
M_PI | 3.14159265358979323846 | 圆周率 |
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 常数 |
PHP_ROUND_HALF_UP | 1 | 向上舍入 |
PHP_ROUND_HALF_DOWN | 2 | 将两半向下舍入 |
PHP_ROUND_HALF_EVEN | 3 | 将两半四舍五入为偶数 |
PHP_ROUND_HALF_ODD | 4 | 将一半四舍五入为奇数 |
NAN | NAN | 不是数字 |
INF | INF | 无限 |