PHP:反射,"non well formed numeric value encountered"设置数组索引

PHP: reflection, "non well formed numeric value encountered" setting array index

我找不到任何关于此问题的具体信息。在我的 class 中,我需要一个关联数组并将其值放入 class 变量中。任何子数组都需要转换为对象。对象的转换发生在以下代码中:

foreach ($value as $key2 => $value2) {
  $object = new $object_str($value2);
  $this->$key[$object->getId()] = $object;
}

$value 来自外部 foreach 循环。
$object_str 包含必须创建的对象的名称,
像这样:MartKuper\OnePageCRM\Contacts\ContactsUrl

输入数组可能如下所示:

[
  'url' => [
    'type' => 'website',
    'value' => 'google.com'
  ]
]

它应该创建一个 ContactsUrl 对象并根据 class' 内部随机 id (uniqid( )).因为我不知道输入数组将有多少 'url' 个条目,所以这一切都需要动态发生。因此

$this->$key[$object->getId()]

错误发生在 $key (url) 数组的索引上。好像不太喜欢拿字符串做索引。我尝试将硬编码字符串放入

$this->$key['test]  

那也不管用。当我在

中输入一个整数时
$this->$key[1]

它确实有效。将字符串转换为整数不是一种选择。它会破坏许多其他 classes.

使用的解析器 class

我已经通过执行以下操作解决了这个问题:

$this->{$key}[$object->getId()] = $object;

发生的事情是它试图获取 $key 变量本身 ($key[$object->getId()]) 的索引,但由于 $key 不是数组,因此失败了。它需要取 $key 代表的 class 变量的索引。