如何在PHP7.4中分配多维数组?
我试图在PHP7.4中分配一个多维数组。我正在从PHP7.2切换到PHP7.4,不知道如何解决这个问题如何在PHP7.4中分配多维数组?,php,Php,我试图在PHP7.4中分配一个多维数组。我正在从PHP7.2切换到PHP7.4,不知道如何解决这个问题 $model->a = $model->a ?? []; $model->a->b = $model->a->b ?? []; 我得到一个错误: 尝试分配非对象的属性“b” 如果$model->a不存在,则将其设置为数组,然后尝试设置$model->a->b,但a是数组而不是对象 因此,您需要分配一个对象,如果需要,用另一个类替换stdclass: $mo
$model->a = $model->a ?? [];
$model->a->b = $model->a->b ?? [];
我得到一个错误:
尝试分配非对象的属性“b”
如果
$model->a
不存在,则将其设置为数组,然后尝试设置$model->a->b
,但a
是数组而不是对象
因此,您需要分配一个对象,如果需要,用另一个类替换stdclass:
$model->a = $model->a ?? new stdclass;
$model->a->b = $model->a->b ?? new stdclass;
$model->a->b->c = 'some value';
或者按原样分配一个数组,然后作为数组访问:
$model->a = $model->a ?? [];
$model->a['b'] = $model->a['b'] ?? [];
$model->a['b']['c'] = 'some value';
但是,对于数组,您不需要执行所有这些操作,因为数组分配是动态的。这很好:
$model->a['b']['c'] = 'some value';
至于从PHP7.2到7.4的切换,这在7.2中也不起作用,您必须在这两者之间的错误报告方面有所不同
您还可以查看魔法方法是否可以帮助您。第一行->将数组分配给属性
a
,第2行:尝试访问a
的属性b
,这是一个数组。。。我的意思是,在PHP7.2中,这两个代码都不能工作,而且“ho to fix what”?你想说什么就说什么achieve@Berto99我需要在$model->a->b-c={some value}中存储一个值。你放弃了吗?是的,我要写这个!