Implicit and Explicit Casting
PHP is a loosely typed language that allows you to declare a variable and its type simply by using it. It also automatically converts values from one type to another whenever required. This is called implicit casting.
However, there may be times when PHP’s implicit casting is not what you want. In Example 4-37, note that the inputs to the division are integers. By default, PHP converts the output to floating-point so it can give the most precise value—4.66 recurring.
<?php $a = 56; $b = 12; $c = $a / $b; echo $c; ?>
But what if we had wanted $c
to
be an integer instead? There are various ways in which this could be
achieved; one way is to force the result of $a
/
$b
to be cast to an integer value using the
integer cast type (int)
, like
this:
$c = (int) ($a / $b);
This is called explicit casting. Note that in
order to ensure that the value of the entire expression is cast to an
integer, the expression is placed within parentheses. Otherwise, only
the variable $a
would have been cast
to an integer—a pointless exercise, as the division by $b
would still have returned a floating-point
number.
Note
You can explicitly cast to the types shown in Table 4-6, but you can usually avoid
having to use a cast by calling one of PHP’s built-in functions. For
example, to obtain an integer value, you could use the intval
function. As with some other sections
in this book, this one is mainly here to help you understand
third-party code that you may encounter.
Get Learning PHP, MySQL, and JavaScript now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.