Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Математические константы
Константа Значение Описание Доступна с версии
M_PI 3.14159265358979323846 число Пи  
M_E 2.7182818284590452354 число Эйлера (e)  
M_LOG2E 1.4426950408889634074 log_2 e  
M_LOG10E 0.43429448190325182765 lg e  
M_LN2 0.69314718055994530942 ln 2  
M_LN10 2.30258509299404568402 ln 10  
M_PI_2 1.57079632679489661923 Пи/2  
M_PI_4 0.78539816339744830962 Пи/4  
M_1_PI 0.31830988618379067154 1/Пи  
M_2_PI 0.63661977236758134308 2/Пи  
M_SQRTPI 1.77245385090551602729 sqrt(Пи) PHP 5.2.0
M_2_SQRTPI 1.12837916709551257390 2/sqrt(Пи)  
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 Натуральный логарифм числа пи PHP 5.2.0
M_EULER 0.57721566490153286061 Постоянная Эйлера PHP 5.2.0
PHP_ROUND_HALF_UP 1 Округление к большему целому PHP 5.3.0
PHP_ROUND_HALF_DOWN 2 Округление к меньшему целому PHP 5.3.0
PHP_ROUND_HALF_EVEN 3 Округление к четному числу PHP 5.3.0
PHP_ROUND_HALF_ODD 4 Округление к нечетному числу PHP 5.3.0
NAN NAN (тип float) Не является числом (Not A Number)  
INF INF (тип float) Бесконечность  

Все константы без указания версии PHP доступны начиная с PHP 4.0.0.

Коментарии

Автор:
There are also the predefined PHP_INT_MAX and PHP_INT_SIZE constants, that describe the range of possible integer values.
2012-03-22 02:20:45
http://php5.kiev.ua/manual/ru/math.constants.html
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'
2015-09-29 17:43:09
http://php5.kiev.ua/manual/ru/math.constants.html
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(INFINF) / M_PI); // float(0.25)
var_dump(atan2(1INF) / M_PI); // float(0)
?>
2016-06-23 18:33:18
http://php5.kiev.ua/manual/ru/math.constants.html
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.
2017-06-12 14:02:36
http://php5.kiev.ua/manual/ru/math.constants.html
Автор:
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.
2017-08-16 03:11:59
http://php5.kiev.ua/manual/ru/math.constants.html
Caution when using variables with the value NAN (or directly NAN, which would not be logical) if the value is converted in any form (integer, string or other non-float format)!
In that case, NAN is converted to 0. (e.g. as an index in an array, argument of a method that takes it as a non-float parameter, etc.). This bug has been reported several times, but is still present in the current version PHP 7.3.15.

Example 1:
$array = [0 =>  'zero', 1 => 'one', 2 => 'two'];
$index = NAN;
echo $array[$index]; // echo 'zero' and not as axcepted throws an exception or at least a warning 'undefined offset NAN ...'

Example 2:
function f((int) $p) { return $p; }
echo f(NAN); // echo 0 because the argument (NAN) has been converted to integer (0)

It would have to be checked in both cases explicitly for is_nan():
1: if(is_nan($index)){
      <throw Exception>
   }else{
      echo $array[$index];
   };

2: function f($p){ // without converting!!!
      if(is_nan($p)){
         <throw Exception>
      }else{
         return (int)$p; // actually a correct conversion  to Integer would have to be checked because the parser does not check this here.
      };
   }
2020-04-01 19:51:36
http://php5.kiev.ua/manual/ru/math.constants.html
Автор:
The constants 

PHP_ROUND_HALF_UP
PHP_ROUND_HALF_DOWN
PHP_ROUND_HALF_EVEN
PHP_ROUND_HALF_ODD

are constants intended to be used as the 3rd parameter in the math function round() 

https://www.php.net/manual/en/function.round
2021-10-26 00:20:40
http://php5.kiev.ua/manual/ru/math.constants.html

    Поддержать сайт на родительском проекте КГБ