某些方法/函数只接受/返回数组,其他只接受/给出对象。在我的日常PHP编程中,我必须重复地将对象转换为数组,反之亦然。 ((object) ['x'=>3]
和(array) (new stdClsss())
)。
大多数课程都没有实现ArrayAccess
。聪明地在JavaScript中,这两种语法是可以互换的。是否有任何黑客,解决方法坚持其中一个并摆脱变量铸造"不能使用xxx类型的对象作为数组"或者"不能在"中使用stdClass类型的对象作为arhray;不能访问非对象的属性"消息。
答案 0 :(得分:0)
我想出了ary。
$var= ary(['x' => 'foo', 'y' => 'bar']);
$foo = $var->x; //or
$foo = $var['x'];
答案 1 :(得分:-2)
尝试使用php序列化功能,而不是尝试转换它们。
$array = array();
$obj = serialize($array);
$again = unserialize($obj);
如果您的交换即将保存数据,这将对您有所帮助。
如果使用该对象是您的批量任务,请尝试为您的对象定义一个类库,然后实现您的函数,如ToArray()
,ToString()
,ToObject()
或{{ 1}},而不是使用自然函数在代码中转换它们。