как решить проблему с ошибкой foreach?

358
11 апреля 2017, 12:17
if (isset($_GET["module"]) and  $_GET["module"]== "kabinet") {
$str = file_get_contents('http://localhost/ras/api/kab.php?module');
$mas = json_decode($str,true );
?>
<table border="1">
    <tr>
        <th>Кабинеты</th>
    </tr>
    <tr>
    <?php
        foreach($mas as $result):
    ?>
        <tr><td><?php echo $result['nomer'];?></td></tr>
    <?php endforeach; 
} ?>
</table> 

Выдает ошибку:

Invalid argument supplied for foreach()

Как ее решить и в чем может быть проблема?

Answer 1

В переменной $mas ничего нет, а точнее либо null, либо false. Проверяй на наличие в ней данных, прежде чем запускать цикл.

Причин может множество:

  • ошибки парсинга json строки
  • вообще не получены данные через file_get_contents
  • прочее...
Answer 2

Используй такой вариант.

foreach((array) $mas as $result)
READ ALSO
string (all) to html special characters

string (all) to html special characters

Добрый день, подскажите пожалуйста как мне c помощью php конвертировать строку в 10ю кодировку и по надобности обратно ?

369
Проблема с openssl на CentOS 7

Проблема с openssl на CentOS 7

На сервере потребовалось запустить для сайта https, всё сделал как нужно по документации (nginx), часть секции server:

321
как распознать на картинке цифры?

как распознать на картинке цифры?

Как определить координаты пикселей на которых изображены цифры?

347
yii2 slug behavior - неправильная транслитерация

yii2 slug behavior - неправильная транслитерация

Как изменить словари для транслитерации? У меня сейчас выходит, например pataa-zemcuzina, а нужно pjataja-zhemchuzhina?

331