Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP7.4中分配多维数组?_Php - Fatal编程技术网

如何在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

我试图在PHP7.4中分配一个多维数组。我正在从PHP7.2切换到PHP7.4,不知道如何解决这个问题

$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}中存储一个值。你放弃了吗?是的,我要写这个!