2016-02-11 2 views
0

Я знаю, что на это ответили сто раз, но это просто странно. У меня есть этот код:Недопустимый аргумент, предоставленный для foreach после проверки всего

if (isset($vendor_social) && !is_null($vendor_social) && count($vendor_social) > 0) { 
    foreach ($vendor_social as $soc) { ... } 
} 

И я все еще получаю

Недействительного аргумента для Еогеаспа()

На этой линии. Как это происходит в мире?

+2

Что говорит вам 'var_dump'' $ vendor_social'? Например, это может быть строковый тип, и он должен быть массивом. Вы можете добавить 'is_array ($ vendor_social)' к вашим чекам. – max

+2

Добавьте 'is_array()' к этой проверке. Только массивы могут быть добавлены в цикл foreach. – Qirel

+0

Хорошо, хорошо. Я проверю это и посмотрю, что произойдет. Мои тестовые данные не будут вызывать эту ошибку; это происходит только в производстве, и я не хочу заполнять журналы моего хостинга связкой vardumps. – Andy

ответ

1

Это может быть строковый тип, например, и он должен быть массивом. Вы можете добавить is_array($vendor_social) к своим чекам.

1

Очень вероятно, что $vendor_social не является массивом или, точнее, не трассируемым.

Например, непустая строка будет удовлетворять вашему состоянию, но не удалась foreach.

Смежные вопросы