Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

Глава 13. Структуры управления данными в PHP

В предыдущих главах мы рассмотрели числовые переменные и константы, познакомились с набором операций, с помощью которых написали небольшие программы. Эти программы имели линейную структуру (т. е. каждый оператор в них выполнялся один раз) и ориентировались в основном на арифметические вычисления. В данных программах отсутствовали какие-либо логические условия, касающиеся обработки отдельных переменных или отдельных операций. При каждом задании такой программы она выполнялась целиком, т. е. работали все ее операторы.

В этой главе обсуждается следующий, более высокий уровень, на котором формируются операторы. Тут будут рассмотрены управляющие конструкции языка. В РНР к ним относятся условные конструкции (ветвления) и циклические конструкции (циклы). Под ветвлением понимается ситуация, когда на основании проверки некоторых условий в программе реализуется один из несколько заранее предопределенных путей решения задачи. Используя циклические конструкции, программист может организовать многократное выполнение некоторой последовательности команд (фрагмента программы) без повторного описания этого фрагмента в программе. Прежде чем перейти к рассмотрению управляющих структур языка РНР, необходимо определить такое базовое понятие, как оператор.

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

• последовательные операторы;

• операторы выбора;

• операторы цикла;

• операторыперехода.

Все они будут рассмотрены в следующих параграфах. Более подробное описание того, что вы сможете изучить в этой главе:

• последовательные операторы;

• операторыобъявления;

• операторы выражения;

• пустые операторы;

• составные операторы;

• операторы выбора;

• конструкция if;

• конструкция if ... else;

• конструкция elseif;

• альтернативный синтаксис для управляющих структур;

• конструкция switch;

• операторы цикла;

• конструкция while;

• конструкция do...while;

• конструкция for;

• конструкция foreach;

• операторы перехода;

• оператор break;

• оператор continue;

• оператор возврата return;

• включение исходного кода текста, содержащегося в файле;

• оператор require();

• оператор include();

• оператор require_once();

• оператор include_once().

13.1. Последовательные операторы

Последовательными операторами называются такие операторы, которые не управляют непосредственно выполнением других операторов в программах являются последовательными. Всего существует четыре типа последовательных операторов:

• операторы объявления;

• операторывыражения;

• пустые операторы;

• составные операторы.

13.2. Операторы объявления

Операторы объявления — единственные операторы, которые могут располагаться вне функции. Они состоят из объявления переменной или функции и заканчиваются точкой с запятой (;). Объявление можно сочетать с присваиванием, как в следующем примере:

$а = 5;

$b = 2.6;

13.3. Операторы выражения

Операторы выражения — это выражения, за которыми следует точка с запятой. Это обычный вид операторов. Например:

$а++;

$а + $b;

--$с;

$а = goodway($y) + $s;

Заметьте, что строка $а + $b; хоть и будет компилироваться без ошибок, реального смысла не имеет.

13.4. Пустые операторы

Пустой оператор является одним из самых важных операторов:

;

Он состоит только из точки с запятой. Хотя такой оператор может показаться бесполезным, он удобен в тех случаях, когда присутствие оператора синтаксически необходимо, но совершенно неуместно. Иногда такое встречается в операторах while и for:

while (test_function($x));

13.5. Составные операторы

Составной оператор, или блок (block), представляет из себя несколько операторов, заключенных в фигурные скобки ({}). Составные операторы могут появляться везде, где допустимы простые операторы. Они позволяют выполнять последовательность операторов там, где по синтаксису подразумевается только один оператор. Например:

<?

$а = 2;

if ($а >= 0) {

    $d = 2;

    $f = 3;

    $n = 2;

    $с = $а + $d;

    $n += $c/$f;

}

$c++;

echo $c;

?>

При описании данного примера выделим кое-какие отличия языка программирования РНР от С. Дело в том, что в С переменные, объявленные внутри составных операторов, могут быть использованы только внутри блока. Таким образом, переменные в предыдущем примере вне скобок не определены. Это принцип работы языка С. Что касается РНР, то каких-либо строгих ограничений в этом направлении не существуют. Этот пример позволяет вам убедиться в том, что переменные, объявленные внутри составных операторов, могут быть использованы не только внутри блока, но также и за его пределами.

Тела функций также заключаются в скобки, следовательно, тело функции является составным оператором. Пустое тело функции — это один из немногих случаев, в которых имеет смысл пустой блок (т. е. составной пустой оператор). При разработке программ можно создавать заготовки функций — функции с пустыми телами — и заполнять их по ходу дела.

Точка с запятой после закрывающей скобки не обязательна, однако хуже не будет, если ее поставить.

13.6. Операторы выбора

Часто определенная часть программы может выполняться только при соблюдении некоторых условий. В качестве примера можно привести программу социологического опроса (заполнения анкеты), в которой задается вопрос о классе транспортных средств, которыми респондент имеет право управлять. Однако сначала необходимо спросить, имеются ли вообще у анкетируемого водительские права. Реализовать данную программу будет проще всего, применив именно операторы выбора.

Операторы выбора выполняют другие операторы в зависимости от условных значений. Это позволяет управлять программой на основе определенных критериев. Существует два типа таких операторов:

• оператор if

• оператор switch.

<< Предыдущий параграф Следующий параграф >>
Оглавление