Modulo Operator
Parte da seção Fundamentos do Journey de PHP da Coddy — lição 16 de 71.
O operador módulo (%) retorna o resto após a divisão. Quando você divide um número por outro, o módulo fornece o que sobra.
<?php
echo 10 % 3; // Saída: 1
?>Aqui, 10 dividido por 3 é igual a 3 com um resto de 1. O operador módulo retorna esse resto.
Um uso comum do módulo é verificar se um número é par ou ímpar. Ao dividir por 2, os únicos restos possíveis são 0 ou 1 — portanto, se um número dividido por 2 não tiver resto, ele é par; se o resto for 1, ele é ímpar:
<?php
$number = 8;
echo $number % 2; // Saída: 0 (par)
$number = 7;
echo $number % 2; // Saída: 1 (ímpar)
?>Isso só funciona para verificações de par/ímpar porque a divisão por 2 sempre resulta em um resto de 0 ou 1. Com outros divisores, o resto pode ser qualquer valor de 0 até um a menos que o divisor.
Mais exemplos para ajudar você a entender o padrão:
<?php
echo 15 % 4; // Saída: 3 (15 = 4*3 + 3)
echo 20 % 5; // Saída: 0 (20 = 5*4 + 0)
$dividend = 17;
$divisor = 5;
echo $dividend % $divisor; // Saída: 2 (17 = 5*3 + 2)
?>Desafio
FácilLeia dois números da entrada: um dividendo e um divisor.
Calcule e imprima o resto quando o primeiro número é dividido pelo segundo número.
Exemplo:
Se as entradas forem 17 e 5, a saída deve ser 2 (porque 17 ÷ 5 = 3 com um resto de 2).
Experimente você mesmo
<?php
// Ler a entrada
$dividend = intval(fgets(STDIN));
$divisor = intval(fgets(STDIN));
// TODO: Escreva seu código abaixo para calcular o resto
// Exibir o resultado
echo $remainder;
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators