php语法和C语法还是有很多相似之处,一些在C中存在的类型转换(隐式或显式)在php中同样适用,故此处不做记录。
有两个是之前没有遇到过的,特此说明:
1、将对象转换成一个数组,会建立一个对象属性的数组,即属性名和属性值的映射;
class Person
{
var $name = "Fred";//var相当于是public的別名
var $age = 35;
}
$o = new person;
$a = (array)$o;
print_r($a);
//输出
Array(
[name] => Fred;
[age] => 35;
)
2、将一个数组转换成一个对象,新生成的对象的属性一一对应到数组的键和值上面。
$a = array('name' => "Fred",'age' => 35,‘wife’ => "wilma");
$o = (object)$a;
echo $o->name;
//输出
Fred
在转换成的对象中,不合法的数组的键会被认为是不合法的属性,是无法被访问到的,而在对象再次被转换成数组时,这些不合法的属性又会被恢复回来。