$var = "10";
$int = (int)$var;
echo $int; // 輸出:10
$var = "10.5";
$int = intval($var);
echo $int; // 輸出:10
$var = "10.5";
$float = (float)$var;
echo $float; // 輸出:10.5
$var = "10";
$float = floatval($var);
echo $float; // 輸出:10.0
$var = 10;
$str = (string)$var;
echo $str; // 輸出:"10"
$var = 10.5;
$str = strval($var);
echo $str; // 輸出:"10.5"
$var = 1;
$bool = (bool)$var;
echo $bool; // 輸出:true
$var = "false";
$bool = boolval($var);
echo $bool; // 輸出:true
$num = 10;
$str = "20";
$result = $num + $str;
echo $result; // 輸出:30
這種機制提高了PHP的靈活性,但也需要開發者註意可能帶來的類型兼容性問題。
$array = ["name" => "John", "age" => 25];
$obj = (object)$array;
echo $obj->name; // 輸出:"John"
echo $obj->age; // 輸出:25
class Person {
public $name = "John";
public $age = 25;
}
$person = new Person();
$array = (array)$person;
print_r($array);
/*
輸出:
Array
(
[name] => John
[age] => 25
)
*/