Fatal error: Cannot break/continue 1 level - проблема с циклом while

220
20 апреля 2022, 23:30
while (($data = fgetcsv($handle, 10000, ";",'"')) !== FALSE) {
include(DIR_CMS."/get_data.php");
}

содержание get_data.php

if(empty($data[0]))
    continue;

Здравствуйте. Подскажите, почему через инклуд я получаю ошибку, а если убрать инклуд и прописать условие в цикл, то ошибки нет ?

Answer 1

Синтаксический анализатор ломается, когда видит continue на верхнем уровне.

Он же не в курсе, куда вы его собираетесь инклудить.

В общем, не нужно так делать. Файл в php - самостоятельная единица интерпретации.

Answer 2

Дополню @vp_arth

Если get_data.php содержит всё, что Вы написали, лучше сделать так:

while (($data = fgetcsv($handle, 10000, ";",'"')) !== FALSE) {
    if(empty($data[0]))
        continue;
}
READ ALSO
laravel запрос аналогичный SQL

laravel запрос аналогичный SQL

Есть обычный SQL запрос:

237
Получение regexp через ajax

Получение regexp через ajax

у меня есть файл на сервере vajxphp содержащий переменные:

127
Разделить html фрагмент кода на две части

Разделить html фрагмент кода на две части

Необходимо разделить html фрагмент кода на две части, при этом теги не должны обрезаться

159
Ratchet не работает на боевом сервере

Ratchet не работает на боевом сервере

Поднят простенький веб-чат на ratchet по инструкцииЧат прекрасно работает на локалке, но на сервере при попытке подключения выдаёт ошибку 403

182