parent root
PHP: Predefined Constants - Manual
PHP 7.2.23 Release Announcement

Predefined Constants

The constants below are always available as part of the PHP core.

Math constants
Constant Value Description Availability
M_PI 3.14159265358979323846 Pi  
M_E 2.7182818284590452354 e  
M_LOG2E 1.4426950408889634074 log_2 e  
M_LOG10E 0.43429448190325182765 log_10 e  
M_LN2 0.69314718055994530942 log_e 2  
M_LN10 2.30258509299404568402 log_e 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) PHP 5.2.0
M_2_SQRTPI 1.12837916709551257390 2/sqrt(pi)  
M_SQRT2 1.41421356237309504880 sqrt(2)  
M_SQRT3 1.73205080756887729352 sqrt(3) PHP 5.2.0
M_SQRT1_2 0.70710678118654752440 1/sqrt(2)  
M_LNPI 1.14472988584940017414 log_e(pi) PHP 5.2.0
M_EULER 0.57721566490153286061 Euler constant PHP 5.2.0
PHP_ROUND_HALF_UP 1 Round halves up PHP 5.3.0
PHP_ROUND_HALF_DOWN 2 Round halves down PHP 5.3.0
PHP_ROUND_HALF_EVEN 3 Round halves to even numbers PHP 5.3.0
PHP_ROUND_HALF_ODD 4 Round halves to odd numbers PHP 5.3.0
NAN NAN (as a float) Not A Number  
INF INF (as a float) The infinite  

All constants without a labeled PHP version above are available starting with PHP 5.0.0.

add a noteadd a note

User Contributed Notes 5 notes

up
21
md2perpe at gmail dot com
4 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'
up
5
Hayley Watson
2 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.
up
14
Hayley Watson
7 years ago
There are also the predefined PHP_INT_MAX and PHP_INT_SIZE constants, that describe the range of possible integer values.
up
1
pemapmodder1970 at gmail dot com
3 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)
?>
up
0
steve at websmithery dot co dot uk
2 years ago
Another observation on INF.

Division by zero results in INF:

<?php
var_dump
(1/0); // float(INF)
?>

BUT a 'Division by zero' warning is issued.
To Top
parent root