PHP: Predefined Constants - Manual
The constants below are always available as part of the PHP core.
-
Mathematical Constants
-
M_PI(float) -
Approximation of the number π (pi).
(
3.14159265358979323846). -
M_E(float) -
Approximation of Euler's number
e(2.7182818284590452354). -
M_LOG2E(float) -
Approximation of
log2(e)(1.4426950408889634074). -
M_LOG10E(float) -
Approximation of
log10(e)(0.43429448190325182765). -
M_LN2(float) -
Approximation of
ln(2)(0.69314718055994530942). -
M_LN10(float) -
Approximation of
ln(10)(2.30258509299404568402). -
M_PI_2(float) -
Approximation of
π/2(1.57079632679489661923). -
M_PI_4(float) -
Approximation of
π/4(0.78539816339744830962). -
M_1_PI(float) -
Approximation of
1/π(0.31830988618379067154). -
M_2_PI(float) -
Approximation of
2/π(0.63661977236758134308). -
M_SQRTPI(float) -
Approximation of
sqrt(π)(1.77245385090551602729). -
M_2_SQRTPI(float) -
Approximation of
2/sqrt(π)(1.12837916709551257390). -
M_SQRT2(float) -
Approximation of
sqrt(2)(1.41421356237309504880). -
M_SQRT3(float) -
Approximation of
sqrt(3)(1.73205080756887729352). -
M_SQRT1_2(float) -
Approximation of
1/sqrt(2)(0.70710678118654752440). -
M_LNPI(float) -
Approximation of
ln(π)(1.14472988584940017414). -
M_EULER(float) -
Approximation of Euler's constant γ
(
0.57721566490153286061).
-
Rounding constants
-
PHP_ROUND_HALF_UP(int) - Rounding half away from zero.
-
PHP_ROUND_HALF_DOWN(int) - Rounding half toward zero.
-
PHP_ROUND_HALF_EVEN(int) - Round halves to even numbers
-
PHP_ROUND_HALF_ODD(int) - Round halves to odd numbers
Note: As of PHP 8.4.0, it is recommended to use the RoundingMode enum instead.
Found A Problem?
10 years ago
I just learnt of INF today and found out that it can be used in comparisons:
echo 5000 < INF ? 'yes' : 'no'; // outputs 'yes'
echo INF < INF ? 'yes' : 'no'; // outputs 'no'
echo INF <= INF ? 'yes' : 'no'; // outputs 'yes'
echo INF == INF ? 'yes' : 'no'; // outputs 'yes'
You can also take its negative:
echo -INF < -5000 ? 'yes' : 'no'; // outputs 'yes'
Division by INF is allowed:
echo 1/INF; // outputs '0'13 years ago
There are also the predefined PHP_INT_MAX and PHP_INT_SIZE constants, that describe the range of possible integer values.pemapmodder1970 at gmail dot com ¶
9 years ago
Although INF can be used for comparison against normal numbers and as a directed number, and behaves as reciprocal of zero, it is not like limit INF tends to infinity. These operations do not work:
<?php
var_dump(INF / INF); // float(NAN)
var_dump(INF - INF); // float(NAN)
?>
However, it works with arc-tangent:
<?php
var_dump(atan(INF) / M_PI); // float(0.5)
var_dump(atan2(INF, INF) / M_PI); // float(0.25)
var_dump(atan2(1, INF) / M_PI); // float(0)
?>8 years ago
From PHP 7.2.0, the PHP_FLOAT_* constants are provided to describe the properties of floating point numbers that can be stored; PHP_FLOAT_MAX, for example, is analogous to PHP_INT_MAX and represents the largest possible floating-point number.