Предопределенные константы
Перечисленные ниже константы всегда доступны как часть ядра 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.
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'
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)
?>
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.