Я делаю много вызовов SOAP к внешним службам в PHP, и иногда XML, который я получаю, предоставляет поле, иногда он предоставляет это поле, но пустое, а иногда просто не предоставляет его вообще. Поэтому каждый раз, когда я хочу сохранить значение, я должен обернуть его так:
$age = (isset($person['age']) && !empty($person['age'])) ? $person['age'] : NULL;
Я подумал, что мог бы просто создать функцию для этого или вызвать только empty()
, но как только я делаю это без предварительной проверки isset
, я получаю вызов неопределенного индекса, когда возвращаемый XML не имеет индекса age
.
Есть ли сокращенный способ проверки ОБА isset
и empty
? Или какую-то функцию, которую я могу создать самостоятельно, которая не приведет к этому предупреждению (но все же даст мне какие-либо другие, если возникнут НАСТОЯЩИЕ проблемы)?
!empty($person['age'])
должно работать. Ноempty
также вернетtrue
для0
иfalse
. Вы уверены, что ошибка в той же строке? - person Sougata Bose   schedule 26.07.2016empty($person['age'])
возвращает предупреждение, когда не установлено. Видимо ошибся! - person Bing   schedule 26.07.2016