(PHP 5, PHP 7, PHP 8)
bcpowmod — Возводит число произвольной точности в степень и делит результат возведения в степень на модуль числа
Функция возводит число num
в степень exponent методом быстрого возведения в степень
и возвращает остаток от деления степени числа на модуль числа в аргументе modulus.
numОснование степени в виде строки с целым числом, без дробной части.
exponentПоказатель степени в виде строки с неотрицательным целым числом, без дробной части.
modulusНеполное кратное в виде строки с целым числом, без дробной части.
scalenull, то по умолчанию будет установлен масштаб по умолчанию,
заданный с помощью функции bcscale() или значение INI-директивы
bcmath.scale.
Функция возвращает результат в виде строки.
Функция выбрасывает ошибку ValueError в следующих случаях:
num, exponent или modulus
оказалось строкой, которую сформировали неправильно с точки зрения допустимого формата числовых строк в модуле BCMath.
num, exponent или modulus
содержит дробную часть.
exponent передали отрицательное значение.
scale выходит за пределы допустимого диапазона.
Функция выбрасывает ошибку DivisionByZeroError,
если значение аргумента modulus равняется 0.
| Версия | Описание |
|---|---|
| 8.0.0 |
Параметр scale теперь принимает значение null.
|
| 8.0.0 |
Функция теперь выбрасывает ошибку ValueError вместо возврата значения false,
если показатель степени exponent оказался отрицательным значением.
|
| 8.0.0 |
Деление на 0 теперь выбрасывает ошибку DivisionByZeroError
вместо возврата значения false.
|
Следующие выражения дают одинаковый результат. Однако функция bcpowmod() работает быстрее и принимает бо́льшие значения аргументов.
<?php
$a = bcpowmod($x, $y, $mod);
$b = bcmod(bcpow($x, $y), $mod);
// $a == $b
?>Замечание:
Поскольку функция выполняет операцию взятия остатка, отрицательные числа иногда дают неожиданные результаты.