2
實現了ArrayAccess當你實現一個類的_toString方法的對象,您可以將對象轉換字符串PHP轉換陣列
$string =(string) $object
是否有在數組轉換成等價
$array=(array) $object
從我測試過的代碼中,即使此對象實現ArrayAccess,objet的屬性也會轉換爲數組的索引。
我預計,鑄造用數組訪問的對象,我會獲得thith相同值的數組我可以訪問對象
public function 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的類有一個我所期望的行爲
從ArrayObject派生並重用getArrayCopy;或者通過返回$ values prop重新實現它。由於沒有'__toArray'處理,投射將不起作用。 – mario 2014-12-02 09:39:08
'公共函數MyObject實現ArrayAccess {'< - 這是無效的PHP語法。你想'class MyObject實現ArrayAccess {...'。 – faintsignal 2017-08-22 21:13:52