PHP: сокращение или функция для if(!isset($array['index']) || empty($array['index']))?

Я делаю много вызовов SOAP к внешним службам в PHP, и иногда XML, который я получаю, предоставляет поле, иногда он предоставляет это поле, но пустое, а иногда просто не предоставляет его вообще. Поэтому каждый раз, когда я хочу сохранить значение, я должен обернуть его так:

$age = (isset($person['age']) && !empty($person['age'])) ? $person['age'] : NULL;

Я подумал, что мог бы просто создать функцию для этого или вызвать только empty(), но как только я делаю это без предварительной проверки isset, я получаю вызов неопределенного индекса, когда возвращаемый XML не имеет индекса age.

Есть ли сокращенный способ проверки ОБА isset и empty? Или какую-то функцию, которую я могу создать самостоятельно, которая не приведет к этому предупреждению (но все же даст мне какие-либо другие, если возникнут НАСТОЯЩИЕ проблемы)?


person Bing    schedule 26.07.2016    source источник
comment
!empty($person['age']) должно работать. Но empty также вернет true для 0 и false. Вы уверены, что ошибка в той же строке?   -  person Sougata Bose    schedule 26.07.2016
comment
Моя ошибка; Я думал, что empty($person['age']) возвращает предупреждение, когда не установлено. Видимо ошибся!   -  person Bing    schedule 26.07.2016