Итак, у меня есть объект со структурой, аналогичной приведенной ниже, все из которых возвращаются мне как stdClass
объекты
$person->contact->phone;
$person->contact->email;
$person->contact->address->line_1;
$person->contact->address->line_2;
$person->dob->day;
$person->dob->month;
$person->dob->year;
$album->name;
$album->image->height;
$album->image->width;
$album->artist->name;
$album->artist->id;
и т.д ... (обратите внимание, что эти примеры не связаны друг с другом).
Можно ли использовать переменные переменные для вызова contact->phone
как прямого свойства $person
?
Например:
$property = 'contact->phone';
echo $person->$property;
Это не будет работать как есть и выдает E_NOTICE
, поэтому я пытаюсь найти альтернативный метод для достижения этой цели.
Есть идеи?
В ответ на ответы, касающиеся прокси-методов:
И я бы исключил этот объект из библиотеки и использую его для заполнения нового объекта картой массивов следующим образом:
array(
'contactPhone' => 'contact->phone',
'contactEmail' => 'contact->email'
);
и затем прохождение по карте для заполнения нового объекта. Полагаю, я мог бы вместо этого использовать Картограф ...