I am looking PHP 7 new Additions in order to improve my skills, i want to know what exactly the difference between the
echo (int) (8/3); // 2
echo floor((8/3)); // 2
echo intdiv((8/3)); // 2
In general all these three you mentioned works similar as of your example but
intdiv() will give you more accurate result while working extremely large set of numbers
here is example you can see.
echo PHP_INT_MAX; // 9223372036854775807 echo (int)(PHP_INT_MAX/2); // 4611686018427387904 // here you can look the ending number echo floor(PHP_INT_MAX/2); // 4.6116860184274E+18 // here you can see floor will return scientific notation for larger numbers echo intdiv(PHP_INT_MAX,2); // 4611686018427387903 // you can compare the result return by (int) cast
intdiv() always give you positive number or in other word
intdiv() let you know how many times you can divide evenly
Another example developer always use
Modulus Operator in order to get remainder but
intdiv() will always return you positive numbers and let you know how many times you can divide evenly.
echo (5 % 2) // 1 echo intdiv(5, 2) // 2
Hope this good enough to understand the difference among all 3 of them..