Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between $bar = boolval($foo) and $bar = (bool) $foo in php?

Tags:

php

Same for intval / (int), floatval / (float), etc.

As far as I can make out, neither changes the original variable, and they both return the casted version. They appear to be functionally identical.

Are there edge cases where there's a difference?

Any reason to ever use one over the other?

Best practice?

I'm assuming that (bool) is "better", as I figure it's probably quicker than a function call that internally probably just does the same thing. If that's the case though, what's the point of these boolval/intval/floatval functions?

like image 692
Codemonkey Avatar asked Jan 07 '16 10:01

Codemonkey


1 Answers

For the most part they are identical, however there are subtle differences:

  • some functions like intval accept a second parameter ($base), which the cast syntax does not
  • a function call has a little more overhead
  • functions can be used as callbacks (e.g. array_map('intval', ..)), which is not possible with the cast syntax
like image 178
deceze Avatar answered Sep 19 '22 13:09

deceze