(PHP 5, PHP 7, PHP 8)
bcpowmod — Eleva um número de precisão arbitrária para outro, reduzido por um módulo especificado
Utiliza o método de exponenciação rápida para elevar
num à potência
exponent levando em conta o módulo
modulus.
numA base, na forma de inteiro em string (a escala tem que ser zero).
exponentO expoente, na forma de um inteiro não negativo, em string (a escala tem que ser zero).
modulusO módulo, na forma de um inteiro em string (a escala tem que ser zero).
scalenull, será usada a escala padrão definida com bcscale(),
ou será usado o valor da diretiva INI
bcmath.scale.
Retorna o resultado como uma string.
Esta função lança uma exceção ValueError nos seguintes casos:
num, exponent ou modulus não é uma string numérica BCMath bem formadanum, exponent ou modulus tem uma parte fracionáriaexponent é um valor negativoscale está fora do intervalo válido
Esta função lança uma exceção DivisionByZeroError se modulus
for igual a 0.
| Versão | Descrição |
|---|---|
| 8.0.0 |
scale agora pode ser nulo.
|
| 8.0.0 |
Agora lança uma exceção ValueError ao invés de retornar false se exponent for negativo.
|
| 8.0.0 |
Dividir por 0 agora lança uma exceção DivisionByZeroError ao invés de retornar false.
|
As seguintes instruções têm funcionalidades idênticas. A versão bcpowmod(), no entanto, executa em menos tempo e pode aceitar parâmetros maiores.
<?php
$a = bcpowmod($x, $y, $mod);
$b = bcmod(bcpow($x, $y), $mod);
// $a e $b são iguais.
?>Nota:
Por esse método realizar operações em módulo, números que não sejam inteiros positivos podem gerar resultados inesperados.