<?php
define('PHP_INT_SIZE',4+4*!!(255<<63));
define('PHP_INT_MIN', 255<<(PHP_INT_SIZE*8)-1);
define('PHP_INT_MAX',~PHP_INT_MIN);
// ceil rounds a number to nearest larger integer
// so of course it returns a float
var_dump(ceil(1));
// $n is a large integer:
$n = PHP_INT_MAX - 10;
var_dump($n);
// I wonder...
$x = ((int) ceil($n)) - $n;
var_dump($x);
?>
Warning: Constant PHP_INT_SIZE already defined in /in/vOVrD on line 2
Warning: Constant PHP_INT_MIN already defined in /in/vOVrD on line 3
Warning: Constant PHP_INT_MAX already defined in /in/vOVrD on line 4
float(1)
int(9223372036854775797)
float(-1.8446744073709552E+19)
Notice: Constant PHP_INT_SIZE already defined in /in/vOVrD on line 2
Notice: Constant PHP_INT_MIN already defined in /in/vOVrD on line 3
Notice: Constant PHP_INT_MAX already defined in /in/vOVrD on line 4
float(1)
int(9223372036854775797)
float(-1.844674407371E+19)
Notice: Constant PHP_INT_SIZE already defined in /in/vOVrD on line 2
Notice: Constant PHP_INT_MAX already defined in /in/vOVrD on line 4
float(1)
int(9223372036854775797)
float(-1.844674407371E+19)