| 
			     | 
			
| (не показаны 18 промежуточных версий 1 участника) | 
| Строка 1: | 
Строка 1: | 
|   | + | == Основы языка==   | 
|   | + | * [[СУБД/лекция 7 семестр 2 (раздел)/Переменные | Переменные ]]  | 
|   | + | * [[СУБД/лекция 7 семестр 2 (раздел)/Управляющие конструкции | Управляющие конструкции ]]  | 
|   | + | * [[СУБД/лекция 7 семестр 2 (раздел)/Строковые функции PHP | Строковые функции PHP ]]  | 
|   | + | * [[СУБД/лекция 7 семестр 2 (раздел)/Функции PHP для работы с массивами | Функции PHP для работы с массивами ]]  | 
|   | + | * [[СУБД/лекция 7 семестр 2 (раздел)/Работа с сетью | Работа с сетью ]]  | 
|   | + | * [[СУБД/лекция 7 семестр 2 (раздел)/Функции для работы с датой и временем| Функции для работы с датой и временем ]]  | 
|   | + | * [http://www.php.su/lessons/ Уроки по работе с  PHP]  | 
|   | + |  | 
|   | + |  [http://www.mirsite.ru/phpbooks.htm Список литературы]  | 
|   | + |  [http://www.mirsite.ru/php.htm Литература 1]  | 
|   | + |  [http://www.php.su/learnphp/cs/ Литература 2]  | 
|   | + |  | 
|   | ==Что нужно для работы с php==  |   | ==Что нужно для работы с php==  | 
|   | * Нужен сервер выполняющий скрипты  |   | * Нужен сервер выполняющий скрипты  | 
| Строка 5: | 
Строка 18: | 
|   | ** Интернет сервер    |   | ** Интернет сервер    | 
|   | * Пишем код, закачиваем на сервер, просматриваем результат выполнения в браузере.  |   | * Пишем код, закачиваем на сервер, просматриваем результат выполнения в браузере.  | 
| − | * Документация по синтаксису и возможностям языка    | + | * Документация по синтаксису и возможностям языка  | 
| − |  [http://www.mirsite.ru/php.htm 1 sourse]
  | + |  | 
|   |  |   |  | 
|   | == Устанавливаем локальный сервер ==  |   | == Устанавливаем локальный сервер ==  | 
| Строка 46: | 
Строка 58: | 
|   | * Видим результат выполнения скрипта  |   | * Видим результат выполнения скрипта  | 
|   |   Hello Viktor!  |   |   Hello Viktor!  | 
| − | == Основы == 
  |   | 
| − | ===Управляющие конструкции ===
  |   | 
| − |  [http://www.php.su/learnphp/cs/ Литература 1]
  |   | 
| − | 
  |   | 
| − | Любой сценарий PHP сформирован из ряда конструкций. Конструкцией могут быть операторы, функции, циклы, условные операторы, даже конструкции, которые не делают ничего (пустые конструкции). Конструкции обычно заканчиваются точкой с запятой. Кроме того, конструкции могут быть сгруппированы в группу, формируя группу конструкций с изогнутыми фигурными скобками {...}. Группа конструкций - это также отдельная конструкция. Конструкции языка PHP похожи на конструкции языка Си.
  |   | 
| − | 
  |   | 
| − | В PHP существуют шесть основных групп управляющих конструкций. Итак, основные группы управляющих конструкций PHP и их состав:
  |   | 
| − | 
  |   | 
| − | * Условные операторы:
  |   | 
| − | ** '''if'''
  |   | 
| − | ** '''else'''
  |   | 
| − | ** '''elseif'''
  |   | 
| − | * Циклы:
  |   | 
| − | ** '''while'''
  |   | 
| − | ** '''do-while'''
  |   | 
| − | ** '''for'''
  |   | 
| − | ** '''foreach'''
  |   | 
| − | ** '''break'''
  |   | 
| − | ** '''continue'''
  |   | 
| − | * Конструкции выбора:
  |   | 
| − | ** '''switch-case'''
  |   | 
| − | * Конструкции объявления: 
  |   | 
| − | ** '''declare'''
  |   | 
| − | * Конструкции возврата значений:
  |   | 
| − | ** '''return'''
  |   | 
| − | * Конструкции включений:
  |   | 
| − | ** '''require()'''
  |   | 
| − | ** '''include()'''
  |   | 
| − | ** '''require_once()'''
  |   | 
| − | ** '''include_once()'''
  |   | 
| − | * Альтернативный синтаксис конструкций PHP
  |   | 
| − | 
  |   | 
| − | === Условные операторы PHP === 
  |   | 
| − | Условные операторы являются, пожалуй, наиболее распространенными конструкциями во всех алгоритмических языках программирования. Рассмотрим основные условные операторы языка PHP.
  |   | 
| − | 
  |   | 
| − | '''Конструкция if'''
  |   | 
| − | 
  |   | 
| − | Синтаксис конструкции if аналогичен конструкции if в языке Си:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − |  if (логическое выражение) оператор;
  |   | 
| − |  ?></source>
  |   | 
| − | 
  |   | 
| − | Согласно выражениям PHP, конструкция if содержит логическое выражение. Если логическое выражение истинно (true), то оператор, следующий за конструкцией if будет исполнен, а если логическое выражение ложно (false), то следующий за if оператор исполнен не будет. Приведем примеры:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | if ($a > $b) echo "значение a больше, чем b";
  |   | 
| − | ?></source> 
  |   | 
| − | 
  |   | 
| − | В следующем примере если переменная $a не равна нулю, будет выведена строка "значение a истинно (true)": 
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | if ($a) echo "значение a истинно (true) ";
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | В следующем примере если переменная $a равна нулю, будет выведена строка "значение a ложно (false)": 
  |   | 
| − | <source lang="php">
  |   | 
| − | <?php
  |   | 
| − | if (!$a) echo "значение a ложно (false) ";
  |   | 
| − | ?>
  |   | 
| − | </source>
  |   | 
| − | Часто вам будет необходим блок операторов, который будет выполняться при определенном условном критерии, тогда эти операторы необходимо поместить в фигурные скобки {...} Пример:
  |   | 
| − | <source lang="php">
  |   | 
| − | <?php
  |   | 
| − | if ($a > $b) {
  |   | 
| − |       echo "a больше b";
  |   | 
| − |       $b = $a;
  |   | 
| − |  }
  |   | 
| − | ?> 
  |   | 
| − | </source>
  |   | 
| − | Приведенный пример выведет сообщение, "a больше b", если $a > $b, а затем переменная $a будет приравнена к переменной $b. Заметим, что данные операторы выполняются в теле конструкции if.
  |   | 
| − | 
  |   | 
| − | '''Конструкция else'''
  |   | 
| − | 
  |   | 
| − | Часто возникает потребность исполнения операторов не только в теле конструкции if, если выполнено какое-либо условие конструкции if, но и в случае, если условие конструкции if не выполнено. В данной ситуации нельзя обойтись без конструкции else. В целом, такая конструкция будет называться конструкцией if-else. 
  |   | 
| − | 
  |   | 
| − | Синтаксис конструкции if-else такой:
  |   | 
| − | 
  |   | 
| − |  if (логическое_выражение)
  |   | 
| − |  инструкция_1;
  |   | 
| − |  else
  |   | 
| − |  инструкция_2;
  |   | 
| − | 
  |   | 
| − | Действие конструкции if-else следующее: если логическое_выражение истинно, то выполняется
  |   | 
| − | инструкция_1, а иначе — инструкция_2. Как и в любом другом языке, конструкция else может опускаться, в этом случае при получении должного значения просто ничего не делается.
  |   | 
| − | 
  |   | 
| − | Если инструкция_1 или инструкция_2 должны состоять из нескольких команд, то они, как всегда, заключаются в фигурные скобки. Например:
  |   | 
| − | <source lang="php">
  |   | 
| − | <?php
  |   | 
| − | if ($a > $b) {
  |   | 
| − |       echo "a больше, чем b";
  |   | 
| − |  } else {
  |   | 
| − |       echo "a НЕ больше, чем b";
  |   | 
| − |  }
  |   | 
| − | ?></source> 
  |   | 
| − | 
  |   | 
| − | '''Конструкция if-else имеет еще один альтернативный синтаксис:'''
  |   | 
| − | 
  |   | 
| − |  if (логическое_выражение):
  |   | 
| − |  команды;
  |   | 
| − |  elseif(другое_логическое_выражение):
  |   | 
| − |  другие_команды;
  |   | 
| − |  else:
  |   | 
| − |  иначе_команды;
  |   | 
| − |  endif
  |   | 
| − | 
  |   | 
| − | Обратите внимание на расположение двоеточия (:)! Если его пропустить, будет сгенерировано сообщение об ошибке. И еще: как обычно, блоки elseif и else можно опускать.
  |   | 
| − | 
  |   | 
| − | '''Конструкция elseif'''
  |   | 
| − | 
  |   | 
| − | elseif - это комбинация конструкций if и else. Эта конструкция расширяет условную конструкцию if-else.
  |   | 
| − | 
  |   | 
| − | Приведем синтаксис конструкции elseif:
  |   | 
| − | 
  |   | 
| − |  if (логическое_выражение_1)
  |   | 
| − |  оператор_1;
  |   | 
| − |  elseif (логическое_выражение_2)
  |   | 
| − |  оператор_2;
  |   | 
| − |  else
  |   | 
| − |  оператор_3;
  |   | 
| − | 
  |   | 
| − | Практический пример использования конструкции elseif:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | if ($a > $b) {
  |   | 
| − |       echo "a больше, чем b";
  |   | 
| − |  } elseif ($a == $b) {
  |   | 
| − |       echo "a равен b";
  |   | 
| − |  } else {
  |   | 
| − |       echo "a меньше, чем b";
  |   | 
| − |  }
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | {{X|24px}}Вообще, конструкция elseif не очень удобна, поэтому применяется не так часто.
  |   | 
| − | 
  |   | 
| − | 
  |   | 
| − | === Циклы: ===
  |   | 
| − | 
  |   | 
| − | На втором месте по частоте использования, после конструкций условий (условных операторов), находятся циклы.
  |   | 
| − | 
  |   | 
| − | Циклы позволяют повторять определенное (и даже неопределенное - когда работа цикла зависит от условия) колличество раз различные операторы. Данные операторы называются телом цикла. Проход цикла называется итерацией.
  |   | 
| − | 
  |   | 
| − | PHP поддерживает три вида циклов:
  |   | 
| − | # Цикл с предусловием (while);
  |   | 
| − | # Цикл с постусловием (do-while);
  |   | 
| − | # Цикл со счетчиком (for);
  |   | 
| − | # Специальный цикл перебора массивов (foreach).
  |   | 
| − | 
  |   | 
| − | При использовании циклов есть возможность использования операторов break и continue. Первый из них прерывает работу всего цикла, а второй - только текущей итерации.
  |   | 
| − | 
  |   | 
| − | Рассмотрим циклы PHP:
  |   | 
| − | 
  |   | 
| − | '''Цикл с предусловием while'''
  |   | 
| − | 
  |   | 
| − | Цикл с предусловием while работает по следующим принципам:
  |   | 
| − | * Вычисляется значение логического выражения.
  |   | 
| − | * Если значение истинно, выполняется тело цикла, в противном случае - переходим на следующий за циклом оператор.
  |   | 
| − | 
  |   | 
| − | ''''''Синтаксис цикла с предусловием:''''''
  |   | 
| − | 
  |   | 
| − |  while (логическое_выражение) 
  |   | 
| − |  инструкция;
  |   | 
| − | 
  |   | 
| − | В данном случае телом цикла является инструкция. Обычно тело цикла состоит из большого числа операторов. Приведем пример цикла с предусловием while:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | $x=0;
  |   | 
| − | while ($x++<10) echo $x;
  |   | 
| − | // Выводит 12345678910
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | Обратите внимание на последовательность выполнения операций условия $x++<10. Сначала проверяется условие, а только потом увеличивается значение переменной. Если мы поставим операцию инкремента перед переменной (++$x<10), то сначала будет выполнено увеличение переменной, а только затем - сравнение. В результате мы получим строку 123456789. Этот же цикл можно было бы записать по-другому:
  |   | 
| − | <source lang="php">
  |   | 
| − | <?php
  |   | 
| − | $x=0;
  |   | 
| − | while ($x<10)
  |   | 
| − | {
  |   | 
| − | $x++; // Увеличение счетчика
  |   | 
| − | echo $x;
  |   | 
| − | }
  |   | 
| − | // Выводит 12345678910
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | Если мы увеличим счетчик после выполнения оператора echo, мы получим строку 0123456789. В любом случае, мы имеем 10 итераций. Итерация - это выполение операторов внутри тела цикла.
  |   | 
| − | 
  |   | 
| − | Подобно конструкции условного оператора if, можно группировать операторы внутри тела цикла while, используя следующий альтернативный синтаксис:
  |   | 
| − | 
  |   | 
| − |  while (логическое_выражение):
  |   | 
| − |  инструкция;
  |   | 
| − |  ...
  |   | 
| − |  endwhile;
  |   | 
| − | 
  |   | 
| − | Пример использования альтернативного синтаксиса:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − |  $x = 1;
  |   | 
| − |  while ($x <= 10):
  |   | 
| − |       echo $x;
  |   | 
| − |       $x++;
  |   | 
| − |  endwhile;
  |   | 
| − | ?></source> 
  |   | 
| − | 
  |   | 
| − | '''Цикл с постусловием do while'''
  |   | 
| − | 
  |   | 
| − | В отличие от цикла while, этот цикл проверяет значение выражения не до, а после каждого прохода (итерации). Таким образом, тело цикла выполняется хотя бы один раз. Синтаксис цикла с постусловием такой:
  |   | 
| − | 
  |   | 
| − |  do
  |   | 
| − |  {
  |   | 
| − |  тело_цикла;
  |   | 
| − |  }
  |   | 
| − |  while (логическое_выражение);
  |   | 
| − | 
  |   | 
| − | После очередной итерации проверяется, истинно ли логическое_выражение, и, если это так, управление передается вновь на начало цикла, в противном случае цикл обрывается.
  |   | 
| − | Альтернативного синтаксиса для do-while разработчики PHP не предусмотрели (видимо, из-за того, что, в отличие от прикладного программирования, этот цикл довольно редко используется при программировании web-приложений).
  |   | 
| − | 
  |   | 
| − | Пример скрипта, показывающего работу цикла с постусловием do-while:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − |  $x = 1;
  |   | 
| − |  do {
  |   | 
| − |       echo $x;
  |   | 
| − |  } while ($x++<10);
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | Рассмотренный сценарий выводит: 12345678910
  |   | 
| − | 
  |   | 
| − | '''Цикл со счетчиком for'''
  |   | 
| − | 
  |   | 
| − | Цикл со счетчиком используется для выполнения тела цикла определенное число раз. С помощью цикла for можно (и нужно) создавать конструкции, которые будут выполнять действия совсем не такие тривиальные, как простая переборка значения счетчика.
  |   | 
| − | 
  |   | 
| − | Синтаксис цикла for такой:
  |   | 
| − | 
  |   | 
| − |  for (инициализирующие_команды; условие_цикла; команды_после_итерации) { тело_цикла; } 
  |   | 
| − | 
  |   | 
| − | Цикл for начинает свою работу с выполнения инициализирующих_команд. Данные команды выполняются только один раз. После этого проверяется условие_цикла, если оно истинно (true), то выполняется тело_цикла. После того, как будет выполнен последний оператор тела, выполняются команды_после_итерации. Затем снова проверяется условие_цикла. Если оно истинно (true), выполняется тело_цикла и команды_после_итерации, и.т.д.
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | for ($x=0; $x<10; $x++) echo $x;
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | Данный сценарий выводит: 0123456789
  |   | 
| − | 
  |   | 
| − | Есть вариант вывода строки 12345678910:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | for ($x=0; $x++<10;) echo $x;
  |   | 
| − | // Выводит 12345678910
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | В данном примере мы обеспечили увеличение счетчика при проверке логического выражения. В таком случае нам не нужны были команды, выполняющиеся после итерации.
  |   | 
| − | 
  |   | 
| − | Если необходимо указать несколько команд, их можно разделить запятыми, пример:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | for ($x=0, $y=0; $x<10; $x++, $y++) echo $x;
  |   | 
| − | // Выводит 0123456789
  |   | 
| − | ?></source> 
  |   | 
| − | 
  |   | 
| − | Приведем еще один, более практичный пример использования нескольких команд в цикле for:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | for($i=0,$j=0,$k="Точки"; $i<10; $j++,$i+=$j) { $k=$k."."; echo $k; }
  |   | 
| − | // Выводит Точки.Точки..Точки...Точки....
  |   | 
| − | ?></source> 
  |   | 
| − | 
  |   | 
| − | Рассмотренный пример (да и вообще любой цикл for) можно реализовать и через while, только это будет выглядеть не так изящно и лаконично.
  |   | 
| − | 
  |   | 
| − | Для цикла for имеется и альтернативный синтаксис:
  |   | 
| − | 
  |   | 
| − |  for(инициализирующие_команды; условие_цикла; команды_после_итерации):
  |   | 
| − |  операторы;
  |   | 
| − |  endfor;
  |   | 
| − | 
  |   | 
| − | '''Цикл перебора массивов foreach'''
  |   | 
| − | 
  |   | 
| − | В PHP4 появился еще один специальный тип цикла - foreach. Данный цикл предназначен специально для перебора массивов.
  |   | 
| − | 
  |   | 
| − | Синтаксис цикла foreach выглядит следующим образом:
  |   | 
| − | 
  |   | 
| − |  foreach (массив as $ключ=>$значение)
  |   | 
| − |  команды;
  |   | 
| − | 
  |   | 
| − | Здесь команды циклически выполняются для каждого элемента массива, при этом очередная пара ключ=>значение оказывается в переменных $ключ и $значение. Приведем пример работы цикла foreach:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | $names["Иванов"] = "Андрей";
  |   | 
| − | $names["Петров"] = "Борис";
  |   | 
| − | $names["Волков"] = "Сергей";
  |   | 
| − | $names["Макаров"] = "Федор";
  |   | 
| − | foreach ($names as $key => $value) {
  |   | 
| − | echo "<b>$value $key</b><br>";
  |   | 
| − | }
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | Рассмотренный сценарий выводит:
  |   | 
| − | 
  |   | 
| − |  Андрей Иванов
  |   | 
| − |  Борис Петров
  |   | 
| − |  Сергей Волков
  |   | 
| − |  Федор Макаров
  |   | 
| − | 
  |   | 
| − | У цикла foreach имеется и другая форма записи, которую следует применять, когда нас не интересует значение ключа очередного элемента. Выглядит она так:
  |   | 
| − | 
  |   | 
| − |  foreach (массив as $значение)
  |   | 
| − |  команды;
  |   | 
| − | 
  |   | 
| − | В этом случае доступно лишь значение очередного элемента массива, но не его ключ. Это может быть полезно, например, для работы с массивами-списками:
  |   | 
| − | <source lang="php">
  |   | 
| − | <?php
  |   | 
| − | $names[] = "Андрей";
  |   | 
| − | $names[] = "Борис";
  |   | 
| − | $names[] = "Сергей";
  |   | 
| − | $names[] = "Федор";
  |   | 
| − | foreach ($names as $value) {
  |   | 
| − | echo "<b>$value</b><br>";
  |   | 
| − | }
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | {{ЖЛампа|24px}}'''Внимание:''' Цикл foreach оперирует не исходным массивом, а его копией. Это означает, что любые изменения, которые вносятся в массив, не могут быть "видны" из тела цикла. Что позволяет, например, в качестве массива использовать не только переменную, но и результат работы какой-нибудь функции, возвращающей массив (в этом случае функция будет вызвана всего один раз - до начала цикла, а затем работа будет производиться с копией возвращенного значения).
  |   | 
| − | 
  |   | 
| − | '''Конструкция break'''
  |   | 
| − | 
  |   | 
| − | Очень часто для того, чтобы упростить логику какого-нибудь сложного цикла, удобно иметь возможность его прервать в ходе очередной итерации (к примеру, при выполнении какого-нибудь особенного условия). Для этого и существует конструкция break, которая осуществляет немедленный выход из цикла. Она может задаваться с одним необязательным параметром - числом, которое указывает, из какого вложенного цикла должен быть произведен выход. По умолчанию используется 1, т. е. выход из текущего цикла, но иногда применяются и другие значения. Синтаксис конструкции break:
  |   | 
| − | 
  |   | 
| − |  break; // По умолчанию
  |   | 
| − |  break(номер_цикла); // Для вложенных циклов (указывается номер прерываемого цикла)
  |   | 
| − | 
  |   | 
| − | Приведем примеры:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | $x=0;
  |   | 
| − | while ($x++<10) {
  |   | 
| − | if ($x==3) break;
  |   | 
| − | echo "<b>Итерация $x</b><br>";
  |   | 
| − | }
  |   | 
| − | // Когда $x равен 3, цикл прерывается
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | Рассмотренный сценарий выводит:
  |   | 
| − | 
  |   | 
| − |  Итерация 1
  |   | 
| − |  Итерация 2
  |   | 
| − | 
  |   | 
| − | Если нам нужно прервать работу определенного (вложенного) цикла, то нужно передать конструкции break параметр - номер_цикла, например, break(1). Нумерация циклов выглядит следующим образом:
  |   | 
| − | 
  |   | 
| − |  for (...) // Третий цикл
  |   | 
| − |  {
  |   | 
| − |    for (...) // Второй цикл
  |   | 
| − |    {
  |   | 
| − |       for (...) // Первый цикл
  |   | 
| − |       {
  |   | 
| − |       }
  |   | 
| − |    }
  |   | 
| − |  }
  |   | 
| − | 
  |   | 
| − | '''Конструкция continue'''
  |   | 
| − | 
  |   | 
| − | Конструкция continue так же, как и break, работает только "в паре" с циклическими конструкциями. Она немедленно завершает текущую итерацию цикла и переходит к новой (конечно, если выполняется условие цикла для цикла с предусловием). Точно так же, как и для break, для continue можно указать уровень вложенности цикла, который будет продолжен по возврату управления.
  |   | 
| − | 
  |   | 
| − | В основном continue позволяет вам сэкономить количество фигурных скобок в коде и увеличить его удобочитаемость. Это чаще всего бывает нужно в циклах-фильтрах, когда требуется перебрать некоторое количество объектов и выбрать из них только те, которые удовлетворяют определенным условиям. Приведем пример использования конструкции continue:
  |   | 
| − | 
  |   | 
| − | <source lang="php"><?php
  |   | 
| − | $x=0;
  |   | 
| − | while ($x++<5) {
  |   | 
| − | if ($x==3) continue;
  |   | 
| − | echo "<b>Итерация $x</b><br>";
  |   | 
| − | }
  |   | 
| − | // Цикл прервется только на третьей итерации 
  |   | 
| − | ?></source>
  |   | 
| − | 
  |   | 
| − | Рассмотренный скрипт выводит:
  |   | 
| − | 
  |   | 
| − |  Итерация 1
  |   | 
| − |  Итерация 2
  |   | 
| − |  Итерация 4
  |   | 
| − |  Итерация 5
  |   | 
| − | 
  |   | 
| − | Грамотное использование '''break''' и '''continue''' позволяет заметно улучшить "читабельность" кода и количество блоков else.
  |   | 
| − | 
  |   | 
| − | === Конструкции выбора: === 
  |   | 
| − | » 	switch-case
  |   | 
| − | 
  |   | 
| − | 
  |   | 
| − | === Конструкции объявлений: ===
  |   | 
| − |  » 	declare
  |   | 
| − | 
  |   | 
| − | 
  |   | 
| − | === Конструкции возврата значений: ===
  |   | 
| − |  » 	return
  |   | 
| − | 
  |   | 
| − | 
  |   | 
| − | === Конструкции включений: ===
  |   | 
| − |  » 	require
  |   | 
| − |  » 	include
  |   | 
| − |  » 	require_once
  |   | 
| − |  » 	include_once
  |   | 
| − | 
  |   | 
| − | 
  |   | 
| − | === Дополнительно: === 
  |   | 
| − | » 	Альтернативный синтаксис конструкций PHP
  |   |