To enable mathematical operations, PHP has mathematical (arithmetic) operators and a number of mathematical functions. In this chapter, the following mathematical functions are explained with examples.
PHP abs() Function
The abs() function is an in-built function in PHP iterpreter. This function accepts any number as argument and returns a positive value, disregarding its sign. Absolute value of any number is always positive.
abs( mixed $num)
PHP abs() function returns the absolute value of num. If the data type of num is float, its return type will also be float. For integer parameter, the return type is integer.
Example
Take a look at this following 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); ?>
It will produce the following 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
The ceil() function is an in-built function in PHP iterpreter. This function accepts any float number as argument and rounds it up to the next highest integer. This function always returns a float number as the range of float is bigger than that of integer.
ceil ( float $num ) : float
PHP ceil() function returns the smallest integer value that is bigger than or equal to given parameter.
Example 1
The following code rounds 5.78 to its next highest integer which is 6
<?php $arg=5.78; $val=ceil($arg); echo "ceil(" . $arg . ") = " . $val; ?>
It will produce the following output −
ceil(5.78) = 6
Example 2
The following example shows how you can find the next highest integer of 15.05.
<?php $arg=15.05; $val=ceil($arg); echo "ceil(" . $arg . ") = " . $val; ?>
It will produce the following output −
ceil(15.05) = 16
Example 3
For negative number, it is rounded towards 0.
<?php $arg=-3.95; $val=ceil($arg); echo "ceil(" . $arg . ") = " . $val; ?>
It will produce the following output −
ceil(-3.95) = -3
PHP exp() Function
The exp() function calculates exponent of e that is Euler Number. PHP has a predefined constant M_E that represents Euler Number and is equal to 2.7182818284590452354. Hence, exp(x) returns 2.7182818284590452354x
This function always returns a float.
exp ( float $arg ) : float
PHP exp() function returns the Euler Number e raised to given arg. Note that e is the base of natural algorithm. The exp() function is the inverse of natural logarithm.
Example 1
One of the predefined constants in PHP is M_LN2 which stands for loge2 and is equal to 0.69314718055994530942. So, the exp() of this value will return 2.
<?php echo "exp(" . M_LN2 . ") = " . exp(M_LN2); ?>
It will produce the following output −
exp(0.69314718055995) = 2
Example 2
M_LN10 is another predefined constant representing loge10. This program calculates exp(M_LN10) and returns 10.
<?php echo "exp(" . M_LN10 . ") = " . exp(M_LN10); ?>
It will produce the following output −
exp(2.302585092994) = 10
PHP floor() Function
The floor() function is another in-built function in PHP interpreter. This function accepts any float number as argument and rounds it down to the next lowest integer. This function always returns a float number as the range of float is bigger than that of integer.
floor ( float $num ) : float
PHP floor() function returns the largest integer less than or equal to the given parameter.
Example 1
The following example shows how to round 15.05 to its next highest integer which is 15
<?php $arg=15.05; $val=floor($arg); echo "floor(" . $arg . ") = " . $val; ?>
It will produce the following output −
floor(15.05) = 15
Example 2
The following example shows how to find the next lowest integer of 5.78.
<?php $arg=5.78; $val=floor($arg); echo "floor(" . $arg . ") = " . $val; ?>
It will produce the following output −
floor(5.78) = 5
Example 3
Negative numbers are rounded away from 0.
<?php $arg=-3.95; $val=floor($arg); echo "floor(" . $arg . ") = " . $val; ?>
It will produce the following output −
floor(-3.95) = -4
PHP intdiv() Function
The intdiv() function returns the integer quotient of two integer parameters. If x/y results in “i” as division and “r” as remainder, then −
x = y*i+r
In this case, intdiv(x,y) returns “i”
intdiv ( int $x , int $y ) : int
The “x” parameter forms numerator part of the division expression, while the “y” parameter forms the denominator part of the division expression.
PHP intdiv() function returns the integer quotient of division of “x” by “y”. The return value is positive if both the parameters are positive or both the parameters are negative.
Example 1
The following example shows that if the numerator is less than the denominator, then intdiv() function returns 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; ?>
It will produce the following output −
intdiv(10,3) = 3 intdiv(3,10) = 0
Example 2
In the following example, intdiv() function returns a negative integer because either the numerator or the denominator is negative.
<?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 ; ?>
It will produce the following output −
intdiv(10,3) = 3 intdiv(10,-3) = -3 intdiv(-10,3) = -3 intdiv(-10,-3) = 3
Example 3
Denominator is 0 in the following example. It results in DivisionByZeroError exception.
<?php $x=10; $y=0; $r=intdiv($x, $y); echo "intdiv(" . $x . "," . $y . ") = " . $r . "n"; ?>
It will produce the following output −
PHP Fatal error: Uncaught DivisionByZeroError: Division by zero
Example 4
The fractional parts in both the parameters are ignored. PHP intdiv() function is applied only to the integer parts.
<?php $x=2.90; $y=1.90; $r=intdiv($x, $y); echo "intdiv(" . $x . "," . $y . ") = " . $r . ""; ?>
It will produce the following output −
intdiv(2.9,1.9) = 2
PHP log10() Function
The log10 () function calculates the base-10 logarithm of a number. Base-10 logarithm is also called common or standard algorithm. The log10(x) function calculates log10x. It is related to natural algorithm by the following equation −
log10x=logex/loge10 ; So that log10100=loge100/loge10 = 2
In PHP, log10 is represented by log10() function
log10 ( float $arg ) : float
PHP log10() function returns the base-10 logarithm of arg.
Example 1
The following code calculates the base-10 logarithm of 100
<?php $arg=100; echo "log10(" . $arg. ")=" . log10($arg) . ""; ?>
It will produce the following output −
log10(100)=2
Example 2
The following code calculates the base-10 logarithm of Euler Number M_E. The result is equal to a predefined constant M_LOG10E
<?php $arg=M_E; echo "log10(" . $arg. ")=" . log10($arg) . "n"; echo "predefined constant M_LOG10E=" . M_LOG10E; ?>
It will produce the following output −
log10(2.718281828459)=0.43429448190325 predefined constant M_LOG10E=0.43429448190325
Example 3
The following code calculates log100 and returns -â.
<?php $arg=0; echo "log10(" . $arg. ")=" . log10($arg) . ""; ?>
It will produce the following output −
log10(0)=-INF
Example 4
Similarly sqrt(-1) results in NAN. Hence, its log10() also returns NAN.
<?php $arg=sqrt(-1); echo "log10(" . $arg. ")=" . log10($arg) . ""; ?>
It will produce the following output −
log10(NAN)=NAN
PHP max() Function
The max () function returns the highest element in an array, or the highest amongst two or more comma separated parameters.
max ( array $values ) : mixed
Or,
max ( mixed $value1 [, mixed $... ] ) : mixed
-
If only one parameter is given, it should be an array of values which may be of same or different types.
-
If two or more parameters are given, they should be any comparable values of same or different types.
PHP max() function returns the highest value from the array parameter or sequence of values. Standard comparison operators are applicable. If multiple values of different types evaluate as equal (e.g. 0 and ”PHP”), the first parameter to the function will be returned.
Example 1
The following code returns the highest value from a numeric array.
<?php $arg=array(23, 5.55, 142, 56, 99); echo "array="; foreach ($arg as $i) echo $i . ","; echo "n"; echo "max = " . max($arg); ?>
It will produce the following output −
array=23,5.55,142,56,99, max = 142
Example 2
The following code returns max() from an array of strings.
<?php $arg=array("Java", "Angular", "PHP", "C", "Kotlin"); echo "array="; foreach ($arg as $i) echo $i . ","; echo "n"; echo "max = " . max($arg); ?>
It will produce the following output −
array=Java,Angular,PHP,C,Kotlin, max = PHP
Example 3
In the following example, a series of string values is provided to the max() function. Let”s see how it behaves −
<?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); ?>
It will produce the following output −
values=Java,Angular,PHP,C,Kotlin max = PHP
Example 4
In this example, the given array is a collection of mixed data types.
<?php $arg=array(23, "Java", 142, 1e2, 99); echo "array="; foreach ($arg as $i) echo $i . ","; echo "n"; echo "max = " . max($arg); ?>
It will produce the following output −
array=23,Java,142,100,99, max = 142
PHP min() Function
The min () function returns the lowest element in an array, or the lowest amongst two or more comma separated parameters.
min ( array $values ) : mixed
Or,
min ( mixed $value1 [, mixed $... ] ) : mixed
-
If only one parameter is given, it should be an array of values which may be of same or different types
-
If two or more parameters are given, they should be any comparable values of same or different types
PHP min() function returns the lowest value from the array parameter or sequence of values. Standard comparison operators are applicable. If multiple values of different types evaluate as equal (e.g. 0 and ”PHP”), the first parameter to the function will be returned
Example 1
The following code returns the smallest value from numeric array.
<?php $arg=array(23, 5.55, 142, 56, 99); echo "array="; foreach ($arg as $i) echo $i . ","; echo "n"; echo "min = " . min($arg); ?>
It will produce the following output −
array=23,5.55,142,56,99, min = 5.55
Example 2
The following code returns min() from an array of strings.
<?php $arg=array("Java", "Angular", "PHP", "C", "Kotlin"); echo "array="; foreach ($arg as $i) echo $i . ","; echo "n"; echo "min = " . min($arg); ?>
It will produce the following output −
array=Java,Angular,PHP,C,Kotlin, min = Angular
Example 3
In this example, a series of string values is provided to the min() function.
<?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); ?>
It will produce the following output −
values=Java,Angular,PHP,C,Kotlin min = Angular
Example 4
In this example, the given array is a collection of mixed data types.
<?php $arg=array(23, "Java", 142, 1e2, 99); echo "array="; foreach ($arg as $i) echo $i . ","; echo "n"; echo "min = " . min($arg); ?>
It will produce the following output −
array=23,Java,142,100,99, min = 23
PHP pow() Function
The pow () function is used to compute the power of a certain number. It returns xy calculation, also termed as x raised to y. PHP also provides “**” as exponentiation operator.
So, pow(x,y) returns xy which is same as x**y.
pow ( number $base , number $exp ) : number
The first parameter is the base to be raised. The second parameter is the power to which base needs to be raised.
PHP pow() function returns the base raised to the power of exp. If both arguments are non-negative integers, the result is returned as integer, otherwise it is returned as a float.
Example 1
The following example calculates 102 using pow() function −
<?php echo "pow(10,2) = " . pow(10,2); echo " using ** operator " . 10**2; ?>
It will produce the following output −
pow(10,2) = 100 using ** operator 100
Example 2
Any number raised to 0 results in 1. This is verified in the following example −
<?php $x=10; $y=0; echo "pow(" . $x, "," . $y . ")=". pow($x,$y); ?>
It will produce the following output −
pow(10,0)=1
Example 3
The following example shows how you can compute the square root of 100 using the pow() function −
<?php $x=100; $y=0.5; echo "pow(" . $x, "," . $y . ")=". pow($x,$y) . "n"; echo "using sqrt() function : ". sqrt(100); ?>
It will produce the following output −
pow(100,0.5)=10 using sqrt() function : 10
Example 4
This example shows how you can use the pow() function to calculate the area of a circle.
<?php $radius=5; echo "radius = " . $radius . " area = " . M_PI*pow(5,2); ?>
It will produce the following output −
radius = 5 area = 78.539816339745
PHP round() Function
The round() function proves useful in rounding any floating point number upto a desired precision level. Positive precision parameter causes the number to be rounded after the decimal point; whereas with negative precision, rounding occurs before the decimal point. Precision is “0” by default.
For example, round(10.6) returns 11, round(10.2) returns 10. The function always returns a floating point number.
This function also has another optional parameter called mode that takes one of the redefined constants described later.
round ( float $value , int $precision , int $mode ) : float
Parameters
-
Value − A float number to be rounded.
-
Precision − Number of decimal digits to round to. Default is 0. Positive precision rounds given number after decimal point. Negative precision rounds the given number before decimal point.
-
Mode − One of the following predefined constants.
Sr.No | Constant & Description |
---|---|
1 |
PHP_ROUND_HALF_UP Rounds number away from 0 when it is half way there. Hence, 1.5 becomes 2 and -1.5 to -2 |
2 |
PHP_ROUND_HALF_DOWN Rounds number towards 0 when it is half way there. Hence 1.5 becomes 1 and -1.5 to -1 |
3 |
PHP_ROUND_HALF_EVEN Rounds the number to nearest even value |
4 |
PHP_ROUND_HALF_ODD Rounds the number to nearest odd value |
PHP round() function returns a float number that by rounding the value to a desired precision.
Example 1
The following code rounds the given number to positive precision values −
<?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) . ""; ?>
It will produce the following output −
round(1234.567) = 1235 round(1234.567,1) = 1234.6 round(1234.567,2) = 1234.57
Example 2
The following code rounds the number to negative precision values −
<?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) . ""; ?>
It will produce the following output −
round(1234.567) = 1235 round(1234.567,-1) = 1230 round(1234.567,-2) = 1200
Example 3
The following code uses UP and DOWN mode constants for rounding −
<?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) . ""; ?>
It will produce the following output −
round(3.45,HALF_UP) = 3 round(3.75 HALF_UP) = 3.7
Example 4
The following code uses ODD and EVEN modes for rounding −
<?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) . ""; ?>
It will produce the following output −
round(3.45,HALF_ODD) = 3 round(3.78, HALF_EVEN) = 4
PHP sqrt() Function
The sqrt() function returns the square root of a positive float number. Since square root for a negative number is not defined, it returns NAN. This is one of the most commonly used functions. This function always returns a floating point number.
sqrt (float $arg) : float
PHP sqrt() function returns the square root of the given arg number. For negative numbers, the function returns NAN.
Example 1
The following code calculates the square root of 100 −
<?php $arg = 100; echo "Square root of " . $arg . "=" . sqrt($arg) . ""; ?>
It will produce the following output −
Square root of 100=10
Example 2
For sqrt(2), 1/sqrt(2) and sqrt(3), PHP has special predefined constants M_SQRT2, M_SQRT1_2 and M_SQRT3, respectively.
<?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 . ""; ?>
It will produce the following 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
The mathematical constants M_SQRTPI and M_2_SQRTPI represent values of sqrt(Î ) and 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 . ""; ?>
It will produce the following output −
sqrt(pi) = 1.7724538509055 M_SQRTPI = 1.7724538509055 2/sqrt(pi) = 1.1283791670955 M_2_SQRTPI = 1.1283791670955
Example 4
sqrt(-1) is undefined, hence it returns NAN.
<?php echo "sqrt(-1) = " . sqrt(-1) . ""; ?>
It will produce the following output −
sqrt(-1) = NAN
Predefined Mathematical Constants
In addition to the above mathematical functions, PHP also has the following list of predefined mathematical constants −
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 | Round halves to even numbers |
PHP_ROUND_HALF_ODD | 4 | Round halves to odd numbers |
NAN | NAN | Not A Number |
INF | INF | Infinity |