ΠŸΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ константы

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ константы доступны ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ядра PHP.

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ константы
M_PI (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа Ο€ (Пи). (3.14159265358979323846).
M_E (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа Π­ΠΉΠ»Π΅Ρ€Π° e (2.7182818284590452354).
M_LOG2E (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ log2(e) (1.4426950408889634074).
M_LOG10E (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ log10(e) (0.43429448190325182765).
M_LN2 (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ln(2) (0.69314718055994530942).
M_LN10 (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ln(10) (2.30258509299404568402).
M_PI_2 (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ο€/2 (1.57079632679489661923).
M_PI_4 (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ο€/4 (0.78539816339744830962).
M_1_PI (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1/Ο€ (0.31830988618379067154).
M_2_PI (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2/Ο€ (0.63661977236758134308).
M_SQRTPI (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ sqrt(Ο€) (1.77245385090551602729).
M_2_SQRTPI (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2/sqrt(Ο€) (1.12837916709551257390).
M_SQRT2 (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ sqrt(2) (1.41421356237309504880).
M_SQRT3 (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ sqrt(3) (1.73205080756887729352).
M_SQRT1_2 (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1/sqrt(2) (0.70710678118654752440).
M_LNPI (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ln(Ο€) (1.14472988584940017414).
M_EULER (float)
ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ постоянной Π­ΠΉΠ»Π΅Ρ€Π° Ξ³ (0.57721566490153286061).
ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ IEEE 754 с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ
NAN (float)
НС являСтся числом (Not A Number)
INF (float)
Π‘Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ
ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ округлСния

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Начиная с PHP 8.4.0, рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ пСрСчислСниС RoundingMode.

PHP_ROUND_HALF_UP (int)
ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ ΠΊ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Ρ†Π΅Π»ΠΎΠΌΡƒ.
PHP_ROUND_HALF_DOWN (int)
ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ Ρ†Π΅Π»ΠΎΠΌΡƒ.
PHP_ROUND_HALF_EVEN (int)
ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ ΠΊ Ρ‡Ρ‘Ρ‚Π½ΠΎΠΌΡƒ числу.
PHP_ROUND_HALF_ODD (int)
ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅Ρ‡Ρ‘Ρ‚Π½ΠΎΠΌΡƒ числу.
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 4 notes

up
40
md2perpe at gmail dot com ΒΆ
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'
up
20
Hayley Watson ΒΆ
14 years ago
There are also the predefined PHP_INT_MAX and PHP_INT_SIZE constants, that describe the range of possible integer values.
up
4
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)
?>
up
0
Hayley Watson ΒΆ
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.