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?