PHP 类型转换
示例
PHP通常会从使用的上下文中正确猜出您打算使用的数据类型,但是有时手动强制类型很有用。这可以通过在声明的前面加上括号中所需类型的名称来实现:
$bool = true;
var_dump($bool); //布尔值(true)
$int = (int) true;
var_dump($int); //整数(1)
$string = (string) true;
var_dump($string); // string(1) "1"
$string = (string) false;
var_dump($string); // string(0) ""
$float = (float) true;
var_dump($float); //浮动(1)
$array = ['x' => 'y'];
var_dump((object) $array); // object(stdClass)#1 (1) { ["x"]=> string(1) "y" }
$object = new stdClass();
$object->x = 'y';
var_dump((array) $object); // array(1) { ["x"]=> string(1) "y" }
$string = "asdf";
var_dump((unset)$string); //空值但请注意:并非所有类型强制转换都能像人们期望的那样工作:
//对于32位系统,以下3条语句有效(PHP_INT_MAX=2147483647) //大于PHP_INT_MAX的整数值将自动转换为float: var_dump( 999888777666 ); //浮动(999888777666) //强制(int)会产生溢出: var_dump((int) 999888777666 ); //整数(-838602302) //但是在字符串中它只返回PHP_INT_MAX var_dump((int) "999888777666"); //整数(2147483647) var_dump((bool) []); //bool(false)(空数组) var_dump((bool) [false]); //布尔值(true) (non-empty array)