我正在尝试创建一个包含多个对象的数组。
我写了这段代码(它是现有类的成员)
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
答案 0 :(得分:3)
如果您使用的是低于v5.6的PHP版本,则不允许您将表达式作为类成员的默认值。除此之外,我没有看到你宣布它的方式有任何问题。
答案 1 :(得分:0)
要将关联数组转换为对象,可以使用有点脏但广泛使用的
$obj = json_decode(json_encode($arr));