如何将多个数组元素转换为对象

时间:2016-03-24 10:08:47

标签: php

我正在尝试创建一个包含多个对象的数组。

我写了这段代码(它是现有类的成员)

public static $Roles = [
    (object) ['code' => 'SO', 'name' => 'Socio'],
    (object) ['code' => 'RESP', 'name' => 'Responsabile zona'],
    (object) ['code' => 'AMM', 'name' => 'Amministratore'],
];

但是我收到了这个错误:

  

语法错误,意外'(对象)'(对象)(T_OBJECT_CAST),   期待')'

在第二行。

我认为这应该可行,因为我已经使用相同的强制语法来定义关联数组元素:

return view('edit-headquarter', [
  'hq' => (object)['name' => '', 'id' => 0],
  'submitAction' => 'insert'
]);

我做错了什么?

编辑:我使用的是PHP 5.4.45

我不确定,但正如Martin Persson所建议的this can be related

2 个答案:

答案 0 :(得分:3)

如果您使用的是低于v5.6的PHP版本,则不允许您将表达式作为类成员的默认值。除此之外,我没有看到你宣布它的方式有任何问题。

答案 1 :(得分:0)

要将关联数组转换为对象,可以使用有点脏但广泛使用的

$obj = json_decode(json_encode($arr));