intdiv în PHP

Împarte două numere întregi și returnează doar partea întreagă a rezultatului.

Sintaxă
intdiv(int $num1, int $num2): int

Ce face intdiv

Operatorul / returnează un float când împărțirea nu este exactă. intdiv returnează doar câtul întreg, tăind zecimalele (spre zero). Restul împărțirii se obține cu operatorul %.

Împărțirea la zero aruncă eroarea DivisionByZeroError.

Parametri

Parametru Descriere
$num1 Deîmpărțitul.
$num2 Împărțitorul. Nu poate fi 0.

Ce returnează

Câtul, ca număr întreg.

Exemple

Exemplul 1: Cât și rest

<?php
var_dump(10 / 3);
var_dump(intdiv(10, 3));
var_dump(10 % 3);
var_dump(intdiv(-7, 2));

Rezultat

float(3.3333333333333335)
int(3)
int(1)
int(-3)

Exemplul 2: Minute transformate în ore și minute

<?php
$minute = 135;

echo intdiv($minute, 60) . " h " . ($minute % 60) . " min";

Rezultat

2 h 15 min

Exemplul 3: Împărțire la zero

<?php
try {
    intdiv(5, 0);
} catch (DivisionByZeroError $e) {
    echo $e->getMessage();
}

Rezultat

Division by zero

Greșeli frecvente

  • Te aștepți ca intdiv(-7, 2) să dea -4, ca floor(-3.5). Rezultatul este -3, pentru că intdiv taie zecimalele spre zero.

Comenzi înrudite

  • fmod: Returnează restul împărțirii a două numere cu zecimale.
  • round: Rotunjește un număr la cel mai apropiat întreg sau la un număr de zecimale.
  • abs: Returnează valoarea absolută a unui număr, adică numărul fără semnul minus.