intdiv() says what the floor division meant

Integer division in PHP has always been (int) ($a / $b) or floor($a / $b), both of which route through a float — so past 253 the answer quietly stops being exact, and the two disagree for negative numbers.

intdiv(10, 3);    // 3
intdiv(-10, 3);   // -3
floor(-10 / 3);   // -4.0  — different answer

intdiv(PHP_INT_MAX, 1);   // exact
(int) (PHP_INT_MAX / 1);  // not

intdiv() truncates toward zero, which matches what % does, so the pair are consistent where floor() and % are not. It throws DivisionByZeroError rather than emitting a warning and returning false, which is one more fatal turned into something catchable.