如何摆脱PHP中的数组/对象转换?

时间:2015-05-14 07:17:13

标签: php arrays object

某些方法/函数只接受/返回数组,其他只接受/给出对象。在我的日常PHP编程中,我必须重复地将对象转换为数组,反之亦然。 ((object) ['x'=>3](array) (new stdClsss()))。

大多数课程都没有实现ArrayAccess。聪明地在JavaScript中,这两种语法是可以互换的。是否有任何黑客,解决方法坚持其中一个并摆脱变量铸造"不能使用xxx类型的对象作为数组"或者"不能在"中使用stdClass类型的对象作为arhray;不能访问非对象的属性"消息。

2 个答案:

答案 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}},而不是使用自然函数在代码中转换它们。