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

154
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 запрос:

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

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

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

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

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

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

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

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

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

96