Как использовать цепочку методов в PHP7 с правильной обработкой ошибок - PullRequest
0 голосов
/ 05 мая 2020

У меня есть такие вложенные объекты и вызовы методов для веб-службы XML:

$value = $object->getData()->getSomething()->getValue();

Проблема в том, что если один вложенный объект не существует, возникает ошибка, подобная этой:

Call to a member function getData() on null 

Могу ли я избежать глупого кода вроде этого:

if ($object && $object->getData() && $object->getData()->getSomething()) {
   $value = $object->getData()->getSomething()->getValue();
}

или обнаружения ошибки:

try {
   $value = $object->getData()->getSomething()->getValue();
} catch (Error $e) {

}

Лучше всего будет что-то вроде:

if (isset($object->getData()->getSomething())) {
   $value = $object->getData()->getSomething()->getValue();
}
...