pi()
Функция pi() в PHP возвращает значение числа π. Узнайте синтаксис, примеры использования и отличие от константы M_PI.
Функция pi() возвращает значение π (пи) — математической константы, описывающей отношение длины окружности к её диаметру, приблизительно равное 3.1415926535898. На этой странице рассматриваются синтаксис функции, её связь с константой M_PI и практические примеры для вычислений с окружностями и тригонометрии.
Синтаксис
pi(): floatФункция не принимает аргументов и возвращает значение типа float. Поскольку она никогда не выбрасывает исключений и не зависит от входных данных, её можно вызывать в любом месте, где нужна эта константа.
Базовое использование
По умолчанию PHP выводит 3.1415926535898. Хранимое значение на самом деле обладает большей точностью, чем отображается — вывод ограничен настройкой precision в ini-файле (по умолчанию 14 значимых цифр).
pi() против константы M_PI
PHP также предоставляет π в виде предопределённой константы M_PI. Они взаимозаменяемы — pi() просто возвращает M_PI:
<?php
var_dump(pi() === M_PI); // bool(true)
echo M_PI; // 3.1415926535898
?>Используйте тот вариант, который лучше читается в вашем коде. M_PI — это поиск константы (немного быстрее и привычнее внутри формул), тогда как pi() удобна, когда нужен вызываемый объект, например при передаче в качестве значения.
Управление отображаемой точностью
Исходное значение имеет ограниченное количество отображаемых цифр, но при необходимости его можно отформатировать с помощью round() или number_format():
<?php
echo round(pi(), 2); // 3.14
echo PHP_EOL;
echo number_format(pi(), 4); // 3.1416
?>Распространённые случаи использования
pi() незаменима везде, где применяется геометрия или тригонометрия.
Длина окружности и площадь круга
<?php
$radius = 5;
$circumference = 2 * pi() * $radius;
$area = pi() * $radius ** 2;
echo "Circumference: " . round($circumference, 4); // 31.4159
echo PHP_EOL;
echo "Area: " . round($area, 4); // 78.5398
?>Перевод градусов в радианы
Тригонометрические функции PHP, такие как sin() и cos(), принимают радианы, а не градусы. Перевод можно выполнить с помощью π (или использовать специальную вспомогательную функцию deg2rad()):
<?php
$degrees = 180;
$radians = $degrees * (pi() / 180);
echo $radians; // 3.1415926535898
echo PHP_EOL;
echo round(sin($radians), 4); // ~0 (sine of 180°)
?>Особенности и подводные камни
- Функция не принимает аргументов.
pi(2)— некорректное использование: функция игнорирует любые входные данные, не ожидайте от неё масштабирования значения. - Применяются ограничения чисел с плавающей точкой. π — иррациональное число; возвращаемый
floatявляется приближением. Избегайте строгих сравнений==с вручную введёнными десятичными числами, такими как3.14159— предварительно округлите обе стороны. - Точность — это настройка отображения, а не хранимого значения. Изменение директивы ini
precisionвлияет лишь на количество цифр, выводимыхecho, но не на точность вычислений.
Заключение
pi() (и эквивалентная константа M_PI) предоставляет готовое к использованию значение π для любых геометрических или тригонометрических вычислений в PHP. Используйте её совместно с round(), sqrt() и pow() для более чистого кода, а полный справочник по математическим функциям PHP можно найти в разделе PHP Math.