Метод цепочки с переменными переменными

asprin спросил: 26 ноября 2017 в 05:20 в: php

API, который я использую (ConnectPHP Oracle Service Cloud), использует подход цепочки. Например:

$incident = new Incident();
$incident->CustomFields->c->make = "Same value";
$incident->StatusWithType->Status->ID = 34;
$incident->save();

Как мне добиться того же, если последующие свойства объекта $incident генерируются динамически? Например:

$data = array();
$data[0]['parts'] = array('CustomFields', 'c', 'make');
$data[0]['value'] = "Some value";$data[1]['parts'] = array('StatusWithType', 'Status', 'ID');
$data[1]['value'] = 34;$incident = new Incident();
foreach($data as $array)
{
   foreach($array['parts'] as $key)
   {  
      // how will I generate 
      // (1) $incident->CustomFields->c->make = $array['value']
      // (2) $incident->StatusWithType->Status->ID = $array['value']
   }
}
$incident->save();

Что я пробовал

$incident = new Incident();
foreach($data as $array)
{
   $parts = implode('->', $array['parts']);
   $incident->{$parts} = $array['value']; // this doesn't work even though $parts is coming out with the expected pattern because I think it is converting it into a string representation
}
$incident->save();

0 ответов