Как проверить значение переменной, если её может вообще не быть?
Недолго занимаюсь 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 шт):
Вам нужно проверять переменную не на пустоту, а есть ли вообще такой элемент в массиве, чтобы к нему обращаться. Для этого используется функция 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 будет равен пустой строке