W3docs

pi()

Функция pi() в PHP возвращает значение числа π. Узнайте синтаксис, примеры использования и отличие от константы M_PI.

Функция pi() возвращает значение π (пи) — математической константы, описывающей отношение длины окружности к её диаметру, приблизительно равное 3.1415926535898. На этой странице рассматриваются синтаксис функции, её связь с константой M_PI и практические примеры для вычислений с окружностями и тригонометрии.

Синтаксис

pi(): float

Функция не принимает аргументов и возвращает значение типа float. Поскольку она никогда не выбрасывает исключений и не зависит от входных данных, её можно вызывать в любом месте, где нужна эта константа.

Базовое использование

php— editable, runs on the server

По умолчанию 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.

Практика

Практика
Какие из следующих утверждений о значении PI в PHP верны?
Какие из следующих утверждений о значении PI в PHP верны?
Was this page helpful?