Sometimes you need to convert a variable from one data type to another, or you want a variable to have a specific data type. This process is known as casting.
Change Data Type
Casting in PHP is done with these statements:
(string)
– Converts to data type String(int)
– Converts to data type Integer(float)
– Converts to data type Float(bool)
– Converts to data type Boolean(array)
– Converts to data type Array(object)
– Converts to data type Object(unset)
– Converts to data type NULL
Cast to String
To cast a variable to a string, use the (string)
statement:
$gear = 5; // Integer $speed = 120.5; // Float $greeting = "hello"; // String $isFast = true; // Boolean $notAvailable = NULL; // NULL $gear = (string) $gear; $speed = (string) $speed; $greeting = (string) $greeting; $isFast = (string) $isFast; $notAvailable = (string) $notAvailable; // To verify the type of any object in PHP, use the var_dump() function: var_dump($gear); var_dump($speed); var_dump($greeting); var_dump($isFast); var_dump($notAvailable);
Cast to Integer
To cast a variable to an integer, use the (int)
statement:
$gear = 5; // Integer $speed = 120.5; // Float $distance = "500 miles"; // String $road = "miles 500"; // String $greeting = "hello"; // String $isFast = true; // Boolean $notAvailable = NULL; // NULL $gear = (int) $gear; $speed = (int) $speed; $distance = (int) $distance; $road = (int) $road; $greeting = (int) $greeting; $isFast = (int) $isFast; $notAvailable = (int) $notAvailable;
Cast to Float
To cast a variable to a float, use the (float)
statement:
$gear = 5; // Integer $speed = 120.5; // Float $distance = "500 miles"; // String $road = "miles 500"; // String $greeting = "hello"; // String $isFast = true; // Boolean $notAvailable = NULL; // NULL $gear = (float) $gear; $speed = (float) $speed; $distance = (float) $distance; $road = (float) $road; $greeting = (float) $greeting; $isFast = (float) $isFast; $notAvailable = (float) $notAvailable;
Cast to Boolean
To cast a variable to a boolean, use the (bool)
statement:
$gear = 5; // Integer $speed = 120.5; // Float $zero = 0; // Integer $negative = -1; // Integer $distance = 0.1; // Float $greeting = "hello"; // String $emptyString = ""; // String $isFast = true; // Boolean $notAvailable = NULL; // NULL $gear = (bool) $gear; $speed = (bool) $speed; $zero = (bool) $zero; $negative = (bool) $negative; $distance = (bool) $distance; $greeting = (bool) $greeting; $emptyString = (bool) $emptyString; $isFast = (bool) $isFast; $notAvailable = (bool) $notAvailable;
If a value is 0, NULL, false, or empty, casting it to a boolean converts it to false
. Otherwise, it converts to true
. Even -1 converts to true
.
Cast to Array
To cast a variable to an array, use the (array)
statement:
$gear = 5; // Integer $speed = 120.5; // Float $greeting = "hello"; // String $isFast = true; // Boolean $notAvailable = NULL; // NULL $gear = (array) $gear; $speed = (array) $speed; $greeting = (array) $greeting; $isFast = (array) $isFast; $notAvailable = (array) $notAvailable;
Most data types convert into an indexed array with one element when cast to arrays. NULL values convert to an empty array.
Example: Converting Objects into Arrays
class Motorcycle { public $brand; public $model; public function __construct($brand, $model) { $this->brand = $brand; $this->model = $model; } public function description() { return "My motorcycle is a " . $this->brand . " " . $this->model . "!"; } } $myMotorcycle = new Motorcycle("Honda", "CB500"); $myMotorcycle = (array) $myMotorcycle; var_dump($myMotorcycle);
Cast to Object
To cast a variable to an object, use the (object)
statement:
$gear = 5; // Integer $speed = 120.5; // Float $greeting = "hello"; // String $isFast = true; // Boolean $notAvailable = NULL; // NULL $gear = (object) $gear; $speed = (object) $speed; $greeting = (object) $greeting; $isFast = (object) $isFast; $notAvailable = (object) $notAvailable;
Most data types convert into an object with one property named “scalar” with the corresponding value. NULL values convert to an empty object.
Example: Converting Arrays into Objects
$brands = array("Honda", "Yamaha", "Suzuki"); // Indexed array $models = array("CB500"=>"500cc", "R6"=>"600cc", "GSX"=>"750cc"); // Associative array $brands = (object) $brands; $models = (object) $models;
Cast to NULL
To cast a variable to NULL, use the (unset)
statement:
$gear = 5; // Integer $speed = 120.5; // Float $greeting = "hello"; // String $isFast = true; // Boolean $notAvailable = NULL; // NULL $gear = (unset) $gear; $speed = (unset) $speed; $greeting = (unset) $greeting; $isFast = (unset) $isFast; $notAvailable = (unset) $notAvailable;