Type JugglingPHP does not require (or support) explicit type definition in variable declaration; a variable's type is determined by the context in which the variable is used. That is to say, if a string value is assigned to variable $var, $var becomes a string. If an integer value is then assigned to $var, it becomes an integer. An example of PHP's automatic type conversion is the multiplication operator '*'. If either operand is a float, then both operands are evaluated as floats, and the result will be a float. Otherwise, the operands will be interpreted as integers, and the result will also be an integer. Note that this does not change the types of the operands themselves; the only change is in how the operands are evaluated and what the type of the expression itself is.
<?php If the last two examples above seem odd, see String conversion to numbers. To force a variable to be evaluated as a certain type, see the section on Type casting. To change the type of a variable, see the settype function. To test any of the examples in this section, use the var_dump function.
Type CastingType casting in PHP works much as it does in C: the name of the desired type is written in parentheses before the variable which is to be cast.
<?php The casts allowed are:
(binary) casting and b prefix forward support was added in PHP 5.2.1 Note that tabs and spaces are allowed inside the parentheses, so the following are functionally equivalent:
<?php Casting literal strings and variables to binary strings:
<?php
It may not be obvious exactly what will happen when casting between certain types. For more information, see these sections: |