Как проверить значение переменной, если её может вообще не быть?

Недолго занимаюсь PHP. Есть массив, который перебираю через foreach, и переменная $tipCont.

Нужно чтобы переменная равнялась точному значению video и существовала (в некоторых итерациях ассоциативного массива ее нету вообще). А если в цикле ее или нету или не равна значению чтобы прерывание было continue. По одному условию работает, по двум не понятно как в уроках php говорится про символы || AND и прочие. ну что-то они не работают.

foreach($PostArray["response"]["items"] as $postsort ) {
  $tipCont = $postsort["attachments"][0]["type"]; 
  if ((!( $tipCont === 'video' )) || (empty($tipCont)))
    continue ;

Ответы (1 шт):

Автор решения: Anton Shchyrov

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

foreach($PostArray["response"]["items"] as $postsort ) {
  if (isset($postsort["attachments"][0]["type"])) {
    $tipCont = $postsort["attachments"][0]["type"]; 
    if ($tipCont === 'video') {
      ....  // Process
    }
  }
}

Или, начиная с PHP 7.0 через оператор объединения

foreach($PostArray["response"]["items"] as $postsort ) {
  $tipCont = $postsort["attachments"][0]["type"] ?? ""; 
  if ($tipCont === 'video') {
    ....  // Process
  }
}

Тогда если в массиве нет элемента $postsort["attachments"][0]["type"], то $tipCont будет равен пустой строке

→ Ссылка