Pi: примеры (PHP)
pi: floatФункция pi в PHP
Функция pi() возвращает приблизительное значение числа π (пи). Это математическая константа, равная отношению длины окружности к её диаметру.
Функция применяется в математических и геометрических расчетах, где требуется значение π: вычисление площади или длины окружности, объёма шара, работа с тригонометрическими функциями, которые используют радианы, и в других научных или инженерных вычислениях.
Функция pi() не принимает никаких аргументов. Вызов всегда производится как pi().
Короткие примеры использования
Код:
<?php
echo pi();
?>Результат:
3.1415926535898
Код:
<?php
$radius = 5;
$area = pi() * $radius * $radius; // или pi() * pow($radius, 2)
echo "Площадь круга с радиусом $radius равна: " . round($area, 2);
?>Результат:
Площадь круга с радиусом 5 равна: 78.54
Похожие средства в PHP
В PHP существует предопределённая константа M_PI, которая содержит то же значение числа π. Её использование эквивалентно вызову функции pi().
Код для сравнения:
<?php
echo "pi(): " . pi() . "\n";
echo "M_PI: " . M_PI . "\n";
echo "Равны? " . ((pi() === M_PI) ? 'Да' : 'Нет');
?>Результат:
pi(): 3.1415926535898 M_PI: 3.1415926535898 Равны? Да
Выбор между pi() и M_PI — вопрос стиля. M_PI может быть слегка быстрее, так как это константа, но разница незначительна. Функция pi() иногда может быть более читаемой в контексте других математических операций.
Аналоги в других языках
В модуле math есть константа math.pi.
import math
print(math.pi) # 3.141592653589793Pi в Javascript
В языке JavaScript значение π доступно через свойство глобального объекта Math.PI.
console.log(Math.PI); // 3.141592653589793Pi в MySQL
В СУБД MySQL существует функция PI(), аналогичная PHP.
SELECT PI(); -- Возвращает 3.141593Особенность PHP по сравнению с другими языками заключается в наличии двух форм доступа к значению (функция и константа), тогда как в Python и JavaScript используется только атрибут модуля или объекта, а в MySQL — только функция.
Типичные ошибки
Основная ошибка — попытка передать функции аргумент, что вызовет ошибку.
<?php
// НЕПРАВИЛЬНО
$result = pi(3.14);
?>Результат выполнения:
Warning: pi() expects exactly 0 parameters, 1 given in ...
Другая возможная проблема — путаница между функцией pi() и константой M_PI при использовании кавычек.
<?php
echo "M_PI"; // Выведет строку 'M_PI', а не значение константы.
echo M_PI; // Корректно: выведет значение.
?>История изменений
Функция pi() присутствует в PHP с самой ранней версии (PHP 4). В документации PHP 8 и более ранних версий нет упоминаний о существенных изменениях в её поведении, сигнатуре или точности возвращаемого значения. Это стабильная и неизменная часть языка.
Расширенные примеры
<?php
function sphereVolume($radius) {
return (4/3) * pi() * pow($radius, 3);
}
$r = 10;
echo "Объём сферы радиусом $r равен: " . round(sphereVolume($r), 2);
?>Объём сферы радиусом 10 равен: 4188.79
<?php
function degToRad($degrees) {
return $degrees * pi() / 180;
}
function radToDeg($radians) {
return $radians * 180 / pi();
}
echo "90 градусов = " . degToRad(90) . " радиан\n";
echo "π радиан = " . radToDeg(pi()) . " градусов";
?>90 градусов = 1.5707963267949 радиан π радиан = 180 градусов
<?php
// Приближённое вычисление интеграла от 0 до π для функции sin(x)
$steps = 1000;
$sum = 0;
$stepSize = pi() / $steps;
for ($i = 0; $i < $steps; $i++) {
$x = $i * $stepSize;
$sum += sin($x) * $stepSize;
}
echo "Приближённый интеграл sin(x) от 0 до π: " . round($sum, 5);
// Теоретический результат равен 2.
?>Приближённый интеграл sin(x) от 0 до π: 2
<?php
$pi_func = pi();
$pi_const = M_PI;
$pi_manual = 3.14159265358979323846;
echo "pi(): " . $pi_func . "\n";
echo "M_PI: " . $pi_const . "\n";
echo "Ручное: " . $pi_manual . "\n";
echo "Разница (pi() - ручное): " . ($pi_func - $pi_manual);
?>pi(): 3.1415926535898 M_PI: 3.1415926535898 Ручное: 3.1415926535898 Разница (pi() - ручное): 0