Создаем динамические веб-сайты с помощью PHP, MySQL и JavaScript

Печать

$written - fwrite($fp. "data"); if (Swritten == FALSE) break;

}

fclose(Sfp);

Это наиболее сложный из всех ранее приведенных фрагментов кода, но вы уже готовы к его пониманию. Команды обработки файлов будут рассмотрены в одной из следующих глав, а сейчас нужно лишь знать, что в первой строке кода открывается файл texttxt для записи в двоичном режиме, а затем переменной $fp возвращается указатель на него, который в дальнейшем используется для ссылки на этот открытый файл.

Затем осуществляется 100 проходов цикла (от 0 до 99), записывающих строку data в файл. После каждой записи функция fwrite присваивает переменной Swritten значение, представляющее собой количество успешно записанных символов. Но если происходит ошибка, функция fwrite присваивает этой переменной значение FALSE.

Поведение функции fwrite облегчает коду проверку переменной Swritten на наличие значения FALSE, и если она имеет такое значение, он прекращает работу цикла и передает управление инструкции, закрывающей файл. При желании улучшить код строку

if (Swritten == FALSE) break:

можно упростить за счет использования оператора NOT:

if (!Swritten) break;

Фактически пара инструкций, находящихся внутри цикла, может быть сокращена до одной:

if (!fwrite($fp, "data")) break;

Но команда break обладает более широкими возможностями, чем можно было бы предположить, поскольку, если нужно прекратить работу кода, вложенного глубже, чем на один уровень, после команды break можно поставить число, показывающее, работу скольких уровней нужно прекратить, например:

break 2;

Инструкция continue

Инструкция continue немного похожа на команду break, только она предписывает РНР остановить процесс текущего цикла и перейти непосредственно к его следующей итерации, то есть вместо прекращения работы всего цикла осуществляется выход только из текущей итерации.

Этот прием может пригодиться в тех случаях, когда известно, что нет смысла продолжать выполнение текущего цикла и нужно сберечь процессорное время или избежать ошибки путем перехода сразу к следующей итерации цикла. В примере 4.36 инструкция continue используется для того, чтобы избежать ошибки деления на ноль за счет ее вызова в тот момент, когда переменная $ j имеет значение 0.