在类上实现 _toString 方法时,可以将对象转换为字符串
$string =(string) $object
是否有在数组中转换的等价物
$array=(array) $object
根据我的测试,使用此代码,即使此对象实现 ArrayAccess,对象的属性也会转换为数组的索引。
我希望通过数组访问来转换对象,我将获得一个数组,其值与我可以使用该对象访问的值相同
public class MyObject implements ArrayAccess{
private $values;
public function __construct(array $values){
$this->values=$values;
}
public function offsetSet($name,$value){
$this->values[$name]=$value;
}
//etc...
}
$myObject=new MyObject(array('foo'=>'bar');
$asArray=(array)$myObject;
print_r($asArray);
// expect array('foo'=>'bar')
// but get array('MyObjectvalues'=>array('foo'=>'bar'));
我还注意到本机 ArrayObject 类具有我预期的行为