PHP 类型转换
有时你需要将一个变量从一种数据类型转换为另一种数据类型,有时你希望一个变量具有特定的数据类型。这可以通过类型转换来完成。
更改数据类型
PHP 中的类型转换使用以下语句完成
(string)
- 转换为数据类型 String(int)
- 转换为数据类型 Integer(float)
- 转换为数据类型 Float(bool)
- 转换为数据类型 Boolean(array)
- 转换为数据类型 Array(object)
- 转换为数据类型 Object(unset)
- 转换为数据类型 NULL
转换为字符串
要转换为字符串,请使用 (string)
语句
示例
$a = 5; // Integer
$b = 5.34; // Float
$c = "hello"; // String
$d = true; // Boolean
$e = NULL; // NULL
$a = (string) $a;
$b = (string) $b;
$c = (string) $c;
$d = (string) $d;
$e = (string) $e;
//To verify the type of any object in PHP, use the var_dump() function:
var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);
动手尝试 »
转换为整数
要转换为整数,请使用 (int)
语句
示例
$a = 5; // Integer
$b = 5.34; // Float
$c = "25 kilometers"; // String
$d = "kilometers 25"; // String
$e = "hello"; // String
$f = true; // Boolean
$g = NULL; // NULL
$a = (int) $a;
$b = (int) $b;
$c = (int) $c;
$d = (int) $d;
$e = (int) $e;
$f = (int) $f;
$g = (int) $g;
动手尝试 »
转换为浮点数
要转换为浮点数,请使用 (float)
语句
示例
$a = 5; // Integer
$b = 5.34; // Float
$c = "25 kilometers"; // String
$d = "kilometers 25"; // String
$e = "hello"; // String
$f = true; // Boolean
$g = NULL; // NULL
$a = (float) $a;
$b = (float) $b;
$c = (float) $c;
$d = (float) $d;
$e = (float) $e;
$f = (float) $f;
$g = (float) $g;
动手尝试 »
转换为布尔值
要转换为布尔值,请使用 (bool)
语句
示例
$a = 5; // Integer
$b = 5.34; // Float
$c = 0; // Integer
$d = -1; // Integer
$e = 0.1; // Float
$f = "hello"; // String
$g = ""; // String
$h = true; // Boolean
$i = NULL; // NULL
$a = (bool) $a;
$b = (bool) $b;
$c = (bool) $c;
$d = (bool) $d;
$e = (bool) $e;
$f = (bool) $f;
$g = (bool) $g;
$h = (bool) $h;
$i = (bool) $i;
动手尝试 »
如果一个值为 0、NULL、false 或空,则 (bool) 将其转换为 false,否则为 true。
即使 -1 也会转换为 true。
转换为数组
要转换为数组,请使用 (array)
语句
示例
$a = 5; // Integer
$b = 5.34; // Float
$c = "hello"; // String
$d = true; // Boolean
$e = NULL; // NULL
$a = (array) $a;
$b = (array) $b;
$c = (array) $c;
$d = (array) $d;
$e = (array) $e;
动手尝试 »
转换为数组时,大多数数据类型都转换为包含一个元素的索引数组。
NULL 值转换为空数组对象。
对象转换为关联数组,其中属性名称成为键,属性值成为值
示例
将对象转换为数组
class Car {
public $color;
public $model;
public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}
public function message() {
return "My car is a " . $this->color . " " . $this->model . "!";
}
}
$myCar = new Car("red", "Volvo");
$myCar = (array) $myCar;
var_dump($myCar);
动手尝试 »
转换为对象
要转换为对象,请使用 (object)
语句
示例
$a = 5; // Integer
$b = 5.34; // Float
$c = "hello"; // String
$d = true; // Boolean
$e = NULL; // NULL
$a = (object) $a;
$b = (object) $b;
$c = (object) $c;
$d = (object) $d;
$e = (object) $e;
动手尝试 »
转换为对象时,大多数数据类型转换为一个名为“scalar”的对象,其中包含相应的 value 属性。
NULL 值转换为一个空对象。
索引数组转换为对象,其中索引号作为属性名称,值作为属性值。
关联数组转换为对象,其中键作为属性名称,值作为属性值。
示例
将数组转换为对象
$a = array("Volvo", "BMW", "Toyota"); // indexed array
$b = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43"); // associative array
$a = (object) $a;
$b = (object) $b;
动手尝试 »转换为 NULL
要转换为 NULL,请使用 (unset)
语句
示例
$a = 5; // Integer
$b = 5.34; // Float
$c = "hello"; // String
$d = true; // Boolean
$e = NULL; // NULL
$a = (unset) $a;
$b = (unset) $b;
$c = (unset) $c;
$d = (unset) $d;
$e = (unset) $e;
动手尝试 »