Страницы

Поиск по вопросам

четверг, 21 февраля 2019 г.

Как в php избавится от конструкции if isset()?

Чем можно заменить данную конструкцию?
В коде очень много подобных проверок, а выносить в отдельную функцию не очень хочется и данный массив берется после обработки xml файла.
if(isset($dict_notification->{'purchaseDocumentation'}->{'grantStartDate'})) { $date = $dict_notification->{'purchaseDocumentation'}->{'grantStartDate'}; } else { return; // old - $date = null; }


Ответ

либо вынести в отдельную функцию, массив по ссылке передавайте в нее - ничего страшного. Что-то в духе:
function turboset(&$array, $key, $default=''){ if (!isset($array[$key])){ return $default; } return $array[$key]; }
либо PHP7, пример оттуда
// Coalescing can be chained: this will return the first // defined value out of $_GET['user'], $_POST['user'], and // 'nobody'. $username = $_GET['user'] ?? $_POST['user'] ?? 'nobody'; ?>

Комментариев нет:

Отправить комментарий