@Little_Junior

Как игнорировать или пропускать варнинги при вставке значений из одного массива в другой?

Я получаю API ответ объектом из file_get_contents('php://input')
И чтобы было удобно с ним работать, переношу данные в мною созданный массив:

$array = [
  'id' => $data->{'id'},
  'name' => $data->{'name'},
  ...
];


Но в API приходят не всегда все значения, которые я пытаюсь вставить в массив, поэтому он выдает варнинг о неизвестной переменной. Как быть с этим? Проверять каждое значение перед вставкой или можно как-то проще все сделать?
  • Вопрос задан
  • 113 просмотров
Решения вопроса 3
@humoured
Вы всё на свете найдёте в коробке с карандашами
Нужно проверять каждое значение перед использованием.
Смотрите в сторону конструкций empty($var), isset($arr['index']), $myVar = $input[123] ?? null и прочих
Ответ написан
@rPman
если тебе не надо это контролировать, то игнорировать
@$data->{'id'}

p.s. вторым параметром json_decode пропиши true, тогда результатом будет не object а array в нужном тебе виде, да и работать можно будет с ним $data['id']
Ответ написан
sergiks
@sergiks Куратор тега PHP
♬♬
Начиная с PHP v.7.0 можно использовать Null Coalescing operator ??
$field1 = 'Habr';
$field2 = 'QnA';
$array = [
  'id' => $data->xxx->yyy->id ?? null,
  'name' => $data->{'name'} ?? 'untitled',
  'site' => $data->$field1->$field2 ?? 'поиск';
];
если запрошенного поля нет, ошибку не бросает, а берет значение по умолчанию, которое после ??
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы