Casting And Power¶
<?php
$a = 2.5;
$b = 2.5;
print (int) $a * (int) $b; // 4
print PHP_EOL;
print (int) $a ** (int) $b; // 6
?>
When you know that 2*2 = 4, and 2**2 = 4 (too), and 2.5 ** 2.5 = 9.8821176880262, you have to ask yourself where is this 6 coming from.
The answer is in the precedence. Casting has higher precedence than multiplication, so cast is done first (2.5 -> 2) then multiplication. This gives the first 4.
Then, power, **, as higher precedence than casting, so the second expression gives first 2.5 ** 2, which is 6.25, and then, cast it again as an integer, hence 6.
It’s a good thing that power is so little used.
See Also¶
Cast And Power [Try me]
PHP Features¶
Last updated: 14 July 2026