Управляющие конструкции в php реферат

Обновлено: 05.07.2024

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

Здесь выражение есть любое правильное PHP-выражение (т.е. все, что имеет значение). В процессе обработки скрипта выражение преобразуется к логическому типу . Если в результате преобразования значение выражения истинно ( True ), то выполняется блок_выполнения . В противном случае блок_выполнения игнорируется. Если блок_выполнения содержит несколько команд, то он должен быть заключен в фигурные скобки < >.

Правила преобразования выражения к логическому типу :

  1. В FALSE преобразуются следующие значения:
    • логическое False
    • целый ноль ( 0 )
    • действительный ноль ( 0.0 )
    • пустая строка и строка "0"
    • массив без элементов
    • объект без переменных (подробно об объектах будет рассказано в одной из следующих лекций)
    • специальный тип NULL

Оператор else

Мы рассмотрели только одну, основную часть оператора if . Существует несколько расширений этого оператора. Оператор else расширяет if на случай, если проверяемое в if выражение является неверным, и позволяет выполнить какие-либо действия при таких условиях.

Структуру оператора if , расширенного с помощью оператора else , можно представить следующим образом:

Эту конструкцию if. else можно интерпретировать примерно так: если выполнено условие (т.е. выражение=true ), то выполняем действия из блока_выполнения , иначе – действия из блока_выполнения1 . Использовать оператор else не обязательно.

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

Оператор elseif

Еще один способ расширения условного оператора if – использование оператора elseif . elseif – это комбинация else и if . Как и else , он расширяет if для выполнения различных действий в том случае, если условие, проверяемое в if , неверно. Но в отличие от else , альтернативные действия будут выполнены, только если elseif -условие является верным. Структуру оператора if , расширенного с помощью операторов else и elseif , можно представить следующим образом:

Операторов elseif может быть сразу несколько в одном if-блоке. Elseif -утверждение будет выполнено, только если предшествующее if-условие является False , все предшествующие elseif -условия являются False , а данное elseif -условие – True .

Альтернативный синтаксис

PHP предлагает альтернативный синтаксис для некоторых своих управляющих структур, а именно для if , while , for , foreach и switch . В каждом случае открывающую скобку нужно заменить на двоеточие ( :), а закрывающую – на endif; , endwhile; и т.д. соответственно.

Например, синтаксис оператора if можно записать таким образом:

Смысл остается тем же: если условие, записанное в круглых скобках оператора if , оказалось истиной, будет выполняться весь код, от двоеточия " :" до команды endif; . Использование такого синтаксиса полезно при встраивании php в html-код.

Если используются конструкции else и elseif , то также можно задействовать альтернативный синтаксис :

Оператор switch

Еще одна конструкция, позволяющая проверять условие и выполнять в зависимости от этого различные действия, – это switch . На русский язык название данного оператора можно перевести как "переключатель". И смысл у него именно такой. В зависимости от того, какое значение имеет переменная, он переключается между различными блоками действия. switch очень похож на оператор if. elseif . else или набор операторов if . Структуру switch можно записать следующим образом:

В отличие от if , здесь значение выражения не приводится к логическому типу, а просто сравнивается со значениями, перечисленными после ключевых слов case ( значение1 , значение2 и т.д.). Если значение выражения совпало с каким-то вариантом, то выполняется соответствующий блок_действий – от двоеточия после совпавшего значения до конца switch или до первого оператора break , если таковой найдется. Если значение выражения не совпало ни с одним из вариантов, то выполняются действия по умолчанию ( блок_действий_по_умолчанию ), находящиеся после ключевого слова default . Выражение в switch вычисляется только один раз, а в операторе elseif – каждый раз, поэтому, если выражение достаточно сложное, то switch работает быстрее.

Пример 3.3 можно переписать с использованием switch следующим образом:

Для конструкции switch , как и для if , возможен альтернативный синтаксис , где открывающая switch фигурная скобка заменяется двоеточием, а закрывающая – endswitch; соответственно.

Циклы

В PHP существует несколько конструкций, позволяющих выполнять повторяющиеся действия в зависимости от условия. Это циклы while , do..while , foreach и for . Рассмотрим их более подробно.

while

while – простой цикл. Он предписывает PHP выполнять команды блока_выполнения до тех пор, пока выражение вычисляется как True (здесь, как и в if , происходит приведение выражения к логическому типу). Значение выражения проверяется каждый раз в начале цикла, так что, даже если его значение изменилось в процессе выполнения блока_выполнения , цикл не будет остановлен до конца итерации (т.е. пока все команды блока_выполнения не будут исполнены).

do. while

Циклы do..while очень похожи на циклы while , с той лишь разницей, что истинность выражения проверяется в конце цикла, а не в начале. Благодаря этому блок_выполнения цикла do. while гарантированно выполняется хотя бы один раз.

Это самые сложные циклы в PHP. Они напоминают соответствующие циклы C.

Здесь, как мы видим, условие состоит сразу из трех выражений. Первое выражение выражение1 вычисляется безусловно один раз в начале цикла. В начале каждой итерации вычисляется выражение2 . Если оно является True , то цикл продолжается и выполняются все команды блока_выполнения . Если выражение2 вычисляется как False , то исполнение цикла останавливается. В конце каждой итерации (т.е. после выполнения всех команд блока_выполнения ) вычисляется выражение3 .

Каждое из выражений 1, 2, 3 может быть пустым. Если выражение2 является пустым, то это значит, что цикл должен выполняться неопределенное время (в этом случае PHP считает это выражение всегда истинным). Это не так бесполезно, как кажется, ведь цикл можно останавливать, используя оператор break .

Например, все четные цифры можно вывести с использованием цикла for таким образом:

Если опустить второе выражение (условие $i ), то такую же задачу можно решить, останавливая цикл оператором break .

Можно опустить все три выражения. В этом случае просто не будет задано начальное значение счетчика $i и оно не будет изменяться каждый раз в конце цикла. Все эти действия можно записать в виде отдельных команд либо в блоке_выполнения , либо перед циклом:

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

foreach

Еще одна полезная конструкция. Она появилась только в PHP4 и предназначена исключительно для работы с массивами.

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

Вторая форма записи в дополнение к перечисленному выше на каждом шаге цикла записывает ключ текущего элемента массива в переменную $key , которую тоже можно использовать в блоке_выполнения .

Когда foreach начинает исполнение, внутренний указатель массива автоматически устанавливается на первый элемент.

Операторы передачи управления

Иногда требуется немедленно завершить работу цикла либо отдельной его итерации. Для этого используют операторы break и continue .

Break

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

Результатом работы этого скрипта будет примерно следующее:

Если после оператора break указать число, то прервется именно такое количество содержащих этот оператор циклов . В приведенном выше примере это неактуально, поскольку вложенных циклов нет. Немного изменим наш скрипт:

continue

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

Заменим в примере предыдущего параграфа оператор break на continue . Кроме того, ограничим число шагов цикла тремя.

Результатом работы этого скрипта будет

Заметим, что после выполнения оператора continue работа цикла не заканчивается. В примере счетчик цикла не меняется в случае получения числа 5 , поскольку он находится после оператора continue . Фактически с помощью continue мы пытаемся избежать ситуации, когда будет сгенерировано число 5 . Поэтому можно было просто написать, заменив оператор continue на проверку истинности выражения:

В PHP существует одна особенность использования оператора continue – в конструкциях switch он работает так же, как и break . Если switch находится внутри цикла и нужно начать новую итерацию цикла, следует использовать continue 2 .

Операторы включения

include

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

Пример 3.9. Пусть в файле params.inc у нас хранится набор каких-то параметров и функций. Каждый раз, когда нам нужно будет использовать эти параметры (функции), мы будем вставлять в текст нашей основной программы команду include 'params.inc' .

Заметим, что использование оператора include эквивалентно простой вставке содержательной части файла params.inc в код программы include.php . Может быть, тогда можно было в params.inc записать простой текст без всяких тегов, указывающих на то, что это php-код? Нельзя! Дело в том, что в момент вставки файла происходит переключение из режима обработки PHP в режим HTML. Поэтому код внутри включаемого файла, который нужно обработать как PHP-скрипт , должен быть заключен в соответствующие теги.

Поиск файла для вставки происходит по следующим правилам.

  1. Сначала ведется поиск файла в include_path относительно текущей рабочей директории.
  2. Если файл не найден, то поиск производится в include_path относительно директории текущего скрипта.
  3. Параметр include_path , определяемый в файле настроек PHP, задает имена директорий, в которых нужно искать включаемые файлы .

Например, ваш include_path это . (то есть текущая директория ), текущая рабочая директория это /www/ . В основной файл include.php вы включаете файл my_dir/a.php , который в свою очередь включает b.php . Тогда парсер первым делом ищет файл b.php в директории /www/ , и если такового нет, то в директории /www/my_dir/ .

Если файл включен с помощью include , то содержащийся в нем код наследует область видимости переменных строки, где появился include . Любые переменные вызванного файла будут доступны в вызывающем файле с этой строки и далее. Соответственно, если include появляется внутри функции вызывающего файла, то код, содержащийся в вызываемом файле, будет вести себя так, как будто он был определен внутри функции. Таким образом, он унаследует область видимости этой функции. Хотя мы и не знакомились еще с понятием функции, все же приводим здесь эти сведения в расчете на интуитивное его понимание.

Пример 3.10. Пусть файл для вставки params.inc останется таким же, а include.php будет следующим:

Кроме локальных файлов, с помощью include можно включать и внешние файлы, указывая их url-адреса. Данная возможность контролируется директивой url_fopen_wrappers в файле настроек PHP и по умолчанию, как правило, включена. Но в версиях PHP для Windows до PHP 4.3.0 эта возможность не поддерживается совсем, вне зависимости от url_fopen_wrappers .

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

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

require

Условные операторы на require() не влияют. Хотя, если строка, в которой появляется этот оператор, не исполняется, то ни одна строка кода из вставляемого файла тоже не исполняется. Циклы также не влияют на require() . Хотя код, содержащийся во вставляемом файле, является объектом цикла, но вставка сама по себе происходит только однажды.

В реализациях PHP до версии 4.0.2 использование require() означало, что интерпретатор обязательно попытается прочесть вставляемый файл.

require , как и include , при использовании внутри условных блоков нужно заключать в фигурные скобки.

Решение задачи

И наконец, вернемся к задаче, сформулированной в начале лекции. Мы хотим создать программу, которую можно было бы использовать для отправки писем (или просто для их генерации) с приглашениями на различные мероприятия множеству пользователей. В предыдущей лекции уже рассматривался подобный случай. Сейчас мы вынесем всю информацию о людях и событиях в отдельный файл data.php и напишем программу, не зависящую (ну, может, совсем чуть-чуть зависящую) от этой информации и ее структуры. В этом случае для того, чтобы, например, расширить список адресатов, не нужно будет изменять скрипт, генерирующий приглашения. Кроме того, можно будет использовать информацию о людях и событиях в других скриптах. В самом скрипте, генерирующем приглашения letters.php , мы использовали условные операторы , циклы, require и другие изученные ранее конструкции.

Заключение

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

Порядок выполнения –
Управляющие конструкции (control structures) – специальные
средства языка программирования, предназначенные для
организации алгоритмов нелинейной структуры
К управляющим конструкциям относят ветвления, циклы,
переходы и т.д.
© НГУЭУ 2013-2015 PHP: управляющие конструкции
2

3. Управляющие конструкции PHP

Операторы передачи управления
goto
break | continue
include
return
Условные операторы:
if | if … else | if … elseif
switch
Циклы
while | do … while
for
foreach
© НГУЭУ 2013-2015 PHP: управляющие конструкции
3

4. Оператор безусловного перехода goto

Синтаксис:
goto label
Значение:
передача управления по метке
Пример:
goto a;
echo 'я следую за GOTO';

a: echo 'я помечен меткой a';
© НГУЭУ 2013-2015 PHP: управляющие конструкции
4

5. Условный оператор if

Синтаксис:
if (expression) statement
Значение:
если значение выражения expression истинно, будет выполнена
инструкция statement
Пример:
if ( $a > $b) echo 'a больше b'

if ( $a ) echo 'значение a, приведенное к булевому типу - TRUE';
echo '
Тип и значение a:';
var_dump ($a)
>
© НГУЭУ 2013-2015 PHP: управляющие конструкции
5

6. Вариант условного оператора if - else

Синтаксис:
if (expression) statement_1 else statement_2
Значение:
если значение выражения expression истинно, будет выполнена
инструкция statement_1 , иначе – инструкция statement_2
Пример:
if ( $a > $b)
echo 'a больше b'
else
echo 'a не больше b';

© НГУЭУ 2013-2015 PHP: управляющие конструкции
6

7. вариант условного оператора if - elseif

синтаксис
if (выражение_А) блок_А
elseif (выражение_Б) блок_Б
elseif (выражение_В) блок_В
***
else (выражение_К)
© НГУЭУ 2013-2015 PHP: управляющие конструкции
7

8. Оператор if_elseif: пример 1

9. Цикл while

while (выражение) инструкция
Повторяет инструкцию, блок инструкций, пока выражение истинно
$i = 0;
while ($i 0);
?>
© НГУЭУ 2013-2015 PHP: управляющие конструкции
9

10. Цикл do - while

Синтаксис:
do инструкция while (выражение)
Значение:
циклическое выполнение инструкции до тех пор, пока выражение
истинно
Пример:
do echo $i-= , ";" while ($i > 0);
© НГУЭУ 2013-2015 PHP: управляющие конструкции
10

11. Цикл for

for (expr1; expr2; expr3) statement
Первое выражение (expr1) всегда вычисляется (выполняется)
только один раз в начале цикла.
В начале каждой итерации оценивается выражение expr2. Если оно
принимает значение TRUE, то цикл продолжается, и вложенные
операторы будут выполнены. Если оно принимает значение FALSE,
выполнение цикла заканчивается.
В конце каждой итерации выражение expr3 вычисляется
(выполняется ).
for ($i = 0; $i
a=1
© НГУЭУ 2013-2015
PHP: управляющие конструкции
16

17. Оператор switch: пример 2

18. Директива include

Выражение include включает и выполняет указанный файл.
Файлы включаются исходя из пути указанного файла, или, если
путь не указан, используется путь, указанный в директиве
include_path. Если файл не найден в include_path, include попытается
проверить директорию, в которой находится текущий включающий
скрипт и текущую рабочую директорию перед тем, как выдать
ошибку.
Конструкция include выдаст warning, если не сможет найти файл;
© НГУЭУ 2013-2015 PHP: управляющие конструкции
18

19. Директива return

return возвращает управление программой в вызывавший модуль.
Выполнение возвращается в выражение, следующее после вызова
текущего модуля.
Если вызвано из функции, выражение return немедленно
прекращает выполнение текущей функции и возвращает свой
аргумент как значение данной функции.
Если вызывается из глобальной области видимости, выполнение
текущего файла скрипта прекращается. Если текущий файл скрипта
был подключен с помощью функций include или require, тогда
управление возвращается к файлу, который вызывал текущий.
Более того, если текущий файл скрипта был подключен с помощью
include, тогда значение переданное return будет возвращено в
качестве значения вызова include.
© НГУЭУ 2013-2015 PHP: управляющие конструкции
19

PHP – это серверный (или серверной стороны) язык сценариев, разработанный специально для Web. В HTML-страницу можно внедрить PHP-код, который будет выполняться при каждом её посещении. PHP-код интерпретируется Web-сервером и генерирует HTML-код или другой вывод, наблюдаемый посетителями страницы.

PHP – это продукт с открытым исходным кодом (Open Source), то есть вы имеете доступ к исходному коду. Его можно использовать, изменять и свободно распространять другим пользователям или организациям.

Первоначально PHP являлось сокращением от Personal Home Page (“Персональная домашняя страница” ), но затем его название было изменено в соответствии с соглашением по рекурсивному именованию GNU (GNU=Gnu’s Not Unix) и теперь означает PHP Hypertext Preprocessor (“Гипертекстовый препроцессор PHP ).

В настоящее время основной версией PHP является четвёртая. Эта версия характеризуется несколькими существенными языковыми усовершенствованиями.

Язык РНР очень практичен, а так же он способен предоставлять программисту средства для быстрого и эффективного решения поставленных перед ним задач. Еще язык РНР работает на любом типе операционных систем, то есть он поддерживается системами типа Windows и Unix.

MySQL – очень быстрая, надёжная система управления базами данных (СУБД). Вообще говоря, база данных позволяет эффективно хранить, искать, сортировать и получать данные. Сервер MySQL управляет доступом к данным, позволяя работать с ними одновременно нескольким пользователям, обеспечивает быстрый доступ к данным и гарантирует предоставление доступа только пользователям, имеющим на это право. Следовательно, MySQL является многопользовательским, многопоточным сервером. Он применяет SQL (Structured Query Landguage – язык структурированных запросов ), используемый по всему миру стандартный язык запросов в базы данных.

Для создания базы данных MySQL я буду использовать такую прикладную программу, как phpMySQL_Admin, так как она имеет простой и понятный каждому интерфейс и позволяет создать базу данных MySQL практически не зная самого языка SQL.

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

Курсовая работа выполнена в соответствии с предложенной руководителем методической литературы.

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

Проверка условий

Команда if представляет собой разновидность команды выбора, которая вычисляет значение выражения и в зависимости от того, будет ли полученный результат истинным или ложным, выполняет (или не выполняет) блок программного кода. Существует две общих формы команды if:

Если в результате проверки условия выполняется всего одна команда, фигурные скобки не обязательны.

Команда elseif добавляет в управляющую конструкцию if дополнительный уровень проверки и увеличивает количество условий, на основании которых принимается решение:

elseif (выражение)

В РНР существует альтернативное представление команды elseif — в виде двух отдельных слов else if. Оба варианта приводят к одинаковым результатам, а альтернативное представление поддерживается исключительно для удобства. Команда elseif особенно полезна в тех случаях, когда происходит последовательное уточнение проверяемых условий. Обратите внимание: условие elseif вычисляется лишь в том случае, если все предшествующие условия if и elseif оказались ложными.

Необходимо отметить, что проверку условий можно вкладывать друг в друга, т.е. в одном блоке операторов условия проверять другое и т.д. Также можно проверять несколько условий одновременно, просто связывая условия операторами AND (&&) и OR (||) .

Принцип работы конструкции switch отчасти напоминает if — результат, полученный при вычислении выражения, проверяется по списку потенциальных совпадений.

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

case (условие): блок

case (условие): блок

Проверяемое условие указывается в круглых скобках после ключевого слова switch. Результат его вычисления последовательно сравнивается с условиями в секциях case. При обнаружении совпадения выполняется блок соответствующей секции. Если совпадение не будет обнаружено, выполняется блок необязательной секции default.

Циклы - это операторы управления, тело которых периодически выполняется определенное количество раз. Циклы бывают с предусловием, с постусловием и с изменяемым параметром.

Рассмотрим циклы с предусловием . Это циклы, в которых условие выхода из них проверяется до выполнения самого тела цикла. Синтаксис данных циклов выглядит следующим образом:

while (условие) :

Также можно использовать фигурные скобки для ограничения тела цикла.

Циклы с постусловием . Это циклы, условие выхода из которых проверяется после выполнения тела цикла. Ниже приведен синтаксис данного типа циклов:

while (условие);

Теперь давайте рассмотрим циклы с изменяемым параметром . Среди данных циклов выделяют две формы их написания: это for и foreach . Общая форма конструкции циклов for и foreach выглядит так:

for ( инициализация: условие; приращение)

foreach :

Существует две разновидности команды foreach , предназначенных для разных типов массивов:

foreach (массив as $элемент)

foreach (массив as $ключ => $элемент)

Первая разновидность применяется для численно-индексированных массивов, а вторая для ассоциативных массивов.

Параметры могут передаваться в РНР-приложение из адресной строки и могут быть получены из формы, вызвавшей это приложение.

Так же можно получить доступ к любому полю формы, как к переменной по имени этого поля. Для этого можно использовать 3 способа доступа: короткий, средний и длинный.

Короткий стиль наиболее удобен в работе, для того, чтобы получить доступ к полю, нужно просто создать переменную с таким же именем, как и поле формы. Но этот стиль требует установление параметра register _ globals = on в ini файле php.

Средний стиль не требует дополнительных настроек, впрочем как и длинный. Но средний стиль работает только с версией РНР 4.0 и выше. Его синтаксис: $имя_переменной = $ _ POST ( GET ) [‘имя_поля’];

Для корректной работы РНР и MySQL вначале требуется подключиться к серверу MySQL. Это выполняет функция, общий вид которой выглядит следующим образом:

resource mysql _ connect ([ string server [, string username [, string password [, bool new _ link ]]]]);

Затем нужно выбрать базу данных, с которой будет работать приложение:

bool mysql_select_db (string database_name [, resource link_identifier]);

После выбора базы данных строим SQL-запрос и выполняем его при помощи функции: resource mysql_query (string query [, resource link_identifier [, int result_mode]]).

Потом обрабатываем результаты запроса. Для этого я буду использовать 2 функции, одна из которых считает количество записей, возвращенных запросом, а вторая записывает возвращаемые данные в нумерованный массив:

int mysql_num_rows (resource result);

array mysql_fetch_array (resource result [, int result_type]);

Посетитель Интернет-сайта может просматривать только коды HTML страниц, он не видит работы РНР и MySQL. Работу с РНР-приложениями и базами данных MySQL осуществляет сервер, на котором установлен РНР-интерпритатор и СУБД MySQL. После выполнения какого-либо РНР-кода, сервер возвращает посетителю сайта HTML страницу, сам РНР-код посетитель просмотреть не может.

Для того чтобы работать с базами данных MySQL, нужен РНР-интерпритатор. Без него сервер не сможет работать с базами данных MySQL.

Ниже показана схема взаимодействия посетителя с базами данных и РНР-приложениями.

Рисунок 1. Взаимодействие посетителя сайта с РНР-приложениями и базами данных MySQL.

В будущую базу данных, которая будет называться “ db _06_ ob ” необходимо включить следующие данные об оборудовании и заказщиках.

Для того чтобы хранить выше перечисленные данные в базе данных необходимо создать следующие таблицы: “obor ” – для хранения данных об оборудовании: идентификатор оборудования, идентификатор фирмы производителя, идентификатор типа оборудования, марка и цена; “zak ” – для хранения данных о заказщиках: идентификатор заказщика, Ф.И.О., адрес, телефон и количество приобретаемого оборудования; “firma ” – для хранения данных о фирме производителе: идентификатор фирмы, идентификатор страны и название фирмы; “strana ” – для хранения данных о стране производителе: идентификатор страны и название страны; “tip ” – для хранения данных о типе оборудования: идентификатор типа оборудования и тип оборудования.


Рисунок 2. Создание новой БД.

В открывшемся окне вводим название новой таблицы:


Рисунок 3. Создание таблицы obor .

Потом открывается окно, в котором создаем поля этой таблицы:


Рисунок 4. Создание полей таблицы obor .

Создание остальных таблиц и полей в них не имеет смысла рассматривать, т.к. они создаются абсолютно аналогичным образом.

В Приложении 1 приведен SQL-запрос, при помощи которого можно проделать всю вышеописанную работу по созданию таблиц и полей в них, просто создав базу данных и выполнив в ней этот запрос.

Итак, мы имеем базу данных, с которой пользователь будет выполнять определенные действия посредством приложений РНР. Сначала создадим HTML страницы, с которых будут вызываться приложения РНР.

Главная страница (Index . html )

На этой странице будут помещены приветствие и четыре ссылки на определённом фоне. Именно с нее и будут вызываться приложения РНР. Здесь и далее будут использоваться фон и шрифты из файла style . css .

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

Порядок выполнения программы задаёт программист, и применяет он для этого управляющие конструкции языка php. То есть управляющая конструкция — это команда на тот, или иной порядок выполнения программы.

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

Конструкции (возможны определения — инструкция, команда) могут быть как одно-строчными, так и составными, то есть собранными в блок. Блок тоже является отдельной конструкцией, последовательно выполняющей конструкции в ней заключённые.

Всего в PHP существует шесть основных групп управляющих конструкций. Это:

1. Условные операторы.
2. Циклы.
3. Конструкции выбора.
4. Конструкции объявления.
5. Конструкции возврата значений.
6. Конструкции включений.

Давайте рассмотрим их подробно, и все по порядку.

Условные операторы

Условные операторы — это самые часто-применяемые конструкции, не только в языке php, но и во всех алгоритмических языках программирования.

Пример одно-строчной конструкции if

В этом примере конструкции if заданно условие: переменная $next должна быть равна нулю. Если это условие соответствует истине, то echo выполнится. Если нет — то откроется пустая страница.

Следующим будет пример составной конструкции.


$next = 0 ;
if ( $next == 0 )
<
echo $vegetables ." Овощи
" ;
echo $fruit. " Фрукты
" ;
echo $berries. " Ягоды
";
>
?>

Здесь так же переменной $next присвоено значение 0 , и конструкция if , проверив его, выполняет блок конструкций echo .

Обратите внимание, что для переноса строки в php применяется, знакомый нам из html, тег
. В дальнейшем мы ещё не раз встретим html теги, применяемые в php коде.

И ещё отмечу, что отступы в php значения не имеют, и применяются только улучшения читабельности кода.

В предыдущем примере, мы рассмотрели вариант, когда инструкция выполняется, если верно заданное условие.

Теперь представьте, что нам нужно исполнить какой либо оператор не только когда условие конструкции if верно, но и тогда когда условие не верно.

В этом случае применяется конструкция else

Эта конструкция ещё более расширяет возможности конструкций if и else . Представьте, что у нас более двух операторов, один из которых должен быть выполнен.

В таком случае, к предыдущим конструкциям, добавляется конструкция elseif .


$next = 0 ;
if ( $next == 0 )
<
echo $vegetables . "Овощи" ;
>
elseif ($next == 0 )
<
echo $fruit . "Фрукты" ;
>
else
<
echo $berries . "Ягоды" ;
>
?>

Теоретически, количество elseif не ограниченно. И сколько бы их не было, программа будет проверять каждую, пока не найдёт верный вариант, то есть true .

Конструкции выбора

Очень часто, при большом количестве операторов, применение конструкции elseif , становится не удобным из-за большого объёма кода.

В таком случае на помощь приходит конструкция switch-case , можно переключатель switch

Конструкция switch-case , по своему действию схожа с конструкцией if-else , но в отличие от последней позволяет получать в качестве результата более двух вариантов.

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


$next= "Фрукты" ;
switch ($next) <
case "Овощи" :
echo "Картофель" ;
break ;
case "Фрукты" :
echo "Яблоки" ;
break ;
case "Ягоды" :
echo "Вишня" ;
break ;
>
//Выводится Яблоки

В этом примере сначала будет обработано условие, затем найден оператор case со значением подходящим к этому условию, и только после этого конструкция switch начнёт выполняться.

Для значений не указанных в задании, в конструкции switch-case , применяется оператор default .


$next= "Грибы" ;
switch ($next) <
case "Овощи":
echo "Картофель" ;
break ;
case "Фрукты":
echo "Яблоки" ;
break ;
case "Ягоды":
echo "Вишня" ;
break ;
default :
echo "Шампиньоны" ;
>
//Выводится шампиньоны
?>

Если опустить оператор break , то программа обработает и выведет на экран все значения конструкции switch-case


$next= "Овощи" ;
switch ($next) <
case "Овощи":
echo "Картофель" ;
case "Фрукты":
echo "Яблоки" ;
case "Ягоды":
echo "Вишня" ;
default :
echo "Шампиньоны" ;
>
/* Выводится
Картофель
Яблоки
Вишня
Шампиньоны */
?>

Ещё одной особенностью конструкции switch-case , является возможность объединения нескольких вариантов в одно выражение.


$next= "Клён" ;
switch ($next) <
case "Овощи":
case "Фрукты":
case "Ягоды":
echo "Картофель
Яблоки
Вишня" ;
break ;
case "Клён":
case "Дуб":
case "Ель":
echo "Лес" ;
break ;
default :
echo "Шампиньоны" ;
>
// Выводится Лес
?>

Циклы, или конструкции повторения.

Циклы предназначаются для многократного (в отличие от конструкции if ) выполнения операторов составляющих тело конструкции.

Процесс выполнения цикла, называется итерацией (iteration — повтор).

В php существует три вида циклов:

1. while и do-while — циклы с не определённым числом итераций.
2. for — цикл с заранее известным числом итераций.
3. foreach — цикл обработки (перебора) массива.

Пример простейшего цикла с одним оператором, обычно их бывает больше.


$next = 1 ;
while ($next 8 )
<
echo $next. "
" ;
$next++;
>
//Выводит числа от 1 до 8. Тег
располагает их столбиком
?>

Подробно рассмотрим, что тут происходит, то есть как работает данная программа.

В первой строке объявляется переменная $next , которой присваивается значение единица. Присваивание значения, называется инициализацией переменной.

Во второй строке программа проверяет условие while ($next , которое будет являться истиной (true).

В третьей строке выполняется первый цикл, так как единица меньше 8, и это подходит под определение true

В четвёртой, переменой, являющейся в этом случае оператором, присваивается оператор инкремента ( ++ ), увеличивающий каждое последующее значение оператора $next на единицу.

И программа будет обрабатывать, и выводить на экран каждое, следующее за единицей, целое число, пока не дойдёт до 9. И так как 9 окажется false , то цикл завершиться.

Конструкция do-while отличается тем, что условие цикла проверяется не до, а после итерации.

В результате, до завершения цикла, обязательно выполнится одна итерация, являющаяся false

Как видите, хоть 9 и является false , однако очередная итерация всё же выполнилась, после чего программа проверила условие и цикл завершился.

Конструкция for , или цикл со счётчиком, по своей работе похож на цикл while , но имеет более компактную форму записи.

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

В следующем примере напишем оглавление к небольшой книге.

Рассмотрим подробно три выражения записанных в условии (круглые скобки) цикла.

$next = 1; — переменная счётчик, начинающая отсчёт с единицы.
$next — определяет продолжительность цикла.
$next++ — определяет шаг изменения значения счётчика. В нашем случае равно единице.

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

Ещё одной особенностью for является возможность обходиться без конструкции echo .

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

В нём в условие цикла вводиться конструкция print

Конструкцию echo , в условие for , вводить нельзя.

У всех вышеприведённых конструкций, кроме do-while , имеется альтернативная форма записи — без фигурных скобок.

В этом случае строка с конструкцией и условием заканчивается двоеточием, а весь блок закрывается конструкцией end , продолжением которой является конструкция к которой она применяется: endif , endwhile , и так далее.

Конструкция foreach — это специальный тип цикла, предназначенный только для перебора массива.


$next[ "помидор" ] = "Красный" ;
$next[ "яблоко" ] = "Зелёное" ;
$next[ "виноград" ] = "Сладкий" ;
$next[ "гриб" ] = "Белый" ;
foreach ($next as $key => $value)
<
echo "$value $key
";
>
/*Выводит
Красный помидор
Зелёное яблоко
Сладкий виноград
Белый гриб */
?>

Для немедленного выхода из цикла, при необходимости, существует конструкция break . После её выполнения, управление передаётся к выражению, следующему после цикла.

Как видите, на седьмой итерации цикл прервался.

Конструкция continue , в отличие от break , прерывает только текущую итерацию, и переходит к следующей.

Как видите итерация 3 отсутствует, так как была прервана конструкцией continue

Конструкции объявления

Конструкции объявления в php представлены двумя элементами. Это конструкции declare и typeset .

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

Для удобства понимания кода, в основном используется конструкция declare . Применяется она для того чтобы установить команды (директивы) на выполнение блока.

В настоящее время распознаётся две директивы — это ticks и encoding

Директива ticks задаёт число тиков

// Далее сценарий блока
function tick_handler ()
<
echo "Функция выполнена\n" ;
>

// Функция, будет исполняться при каждом тике
?>

Директива encoding применяется для указания кодировки всего скрипта.

Конструкции включений

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

Так же конструкции включений применяются для уменьшения объёма кода скрипта, когда нужно ввести в код некий текст. Тогда в программу вводится файл txt.

Правда в таком случае возникает угроза безопасности скрипта, и для её решения вместе с txt файлом необходимо ввести в программу константу, а в подключаемых файлах проверять её существование.

Всего в php существует 4 типа конструкций включения, и все они принимают только один аргумент — путь к файлу:

include — подключает файл к программе, при его отсутствии выдаёт предупреждение;
require — подключает файл к программе, при его отсутствии прекращает работу скрипта;
include_once — допускает только одноразовое включение подключённого файла, а при его отсутствии выдает предупреждение;
require_once — допускает только одноразовое включение подключённого файла, а при его отсутствии прекращает работу скрипта;

Конструкции include_once и require_once удобны тем, что исключают путаницу при вложенных включениях, когда есть возможность повторного включения файлов, содержащих объявления функций.



Перемена

Вы можете изучить и скачать доклад-презентацию на тему PHP. Управляющие конструкции. Презентация на заданную тему содержит 19 слайдов. Для просмотра воспользуйтесь проигрывателем, если материал оказался полезным для Вас - поделитесь им с друзьями с помощью социальных кнопок и добавьте наш сайт презентаций в закладки!

500
500
500
500
500
500
500
500
500
500
500
500
500
500
500
500
500
500
500

Управляющие конструкции Порядок выполнения – Управляющие конструкции (control structures) – специальные средства языка программирования, предназначенные для организации алгоритмов нелинейной структуры К управляющим конструкциям относят ветвления, циклы, переходы и т.д.

Управляющие конструкции PHP Операторы передачи управления goto break | continue include return Условные операторы: if | if … else | if … elseif switch Циклы while | do … while for foreach

Оператор безусловного перехода goto Синтаксис: goto label Значение: передача управления по метке Пример: goto a; echo 'я следую за GOTO'; … a: echo 'я помечен меткой a';

Условный оператор if Синтаксис: if (expression) statement Значение: если значение выражения expression истинно, будет выполнена инструкция statement Пример: if ( $a > $b) echo 'a больше b' … if ( $a ) < echo 'значение a, приведенное к булевому типу - TRUE'; echo '
Тип и значение a:'; var_dump ($a) >

Вариант условного оператора if - else Синтаксис: if (expression) statement_1 else statement_2 Значение: если значение выражения expression истинно, будет выполнена инструкция statement_1 , иначе – инструкция statement_2 Пример: if ( $a > $b) echo 'a больше b' else echo 'a не больше b'; …

вариант условного оператора if - elseif синтаксис if (выражение_А) блок_А elseif (выражение_Б) блок_Б elseif (выражение_В) блок_В *** else (выражение_К)

Цикл while while (выражение) инструкция Повторяет инструкцию, блок инструкций, пока выражение истинно $i = 0; while ($i 0); ?>

Цикл do - while Синтаксис: do инструкция while (выражение) Значение: циклическое выполнение инструкции до тех пор, пока выражение истинно Пример: do echo $i-= , ";" while ($i > 0);

Цикл for for (expr1; expr2; expr3) statement Первое выражение (expr1) всегда вычисляется (выполняется) только один раз в начале цикла. В начале каждой итерации оценивается выражение expr2. Если оно принимает значение TRUE, то цикл продолжается, и вложенные операторы будут выполнены. Если оно принимает значение FALSE, выполнение цикла заканчивается. В конце каждой итерации выражение expr3 вычисляется (выполняется ). for ($i = 0; $i

Директива break break прерывает выполнение текущей итерации цикла for, foreach, while, do-while Используется также применительно конструкции switch. break принимает необязательный числовой аргумент, который сообщает ему выполнение какого количества вложенных структур необходимо прервать.

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

вариант условного оператора switch синтаксис switch (выражение) < case значение_А: блок_А break; case значение_В: блок_В break; default: блок_0

Директива include Выражение include включает и выполняет указанный файл. Файлы включаются исходя из пути указанного файла, или, если путь не указан, используется путь, указанный в директиве include_path. Если файл не найден в include_path, include попытается проверить директорию, в которой находится текущий включающий скрипт и текущую рабочую директорию перед тем, как выдать ошибку. Конструкция include выдаст warning, если не сможет найти файл;

Директива return return возвращает управление программой в вызывавший модуль. Выполнение возвращается в выражение, следующее после вызова текущего модуля. Если вызвано из функции, выражение return немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции. Если вызывается из глобальной области видимости, выполнение текущего файла скрипта прекращается. Если текущий файл скрипта был подключен с помощью функций include или require, тогда управление возвращается к файлу, который вызывал текущий. Более того, если текущий файл скрипта был подключен с помощью include, тогда значение переданное return будет возвращено в качестве значения вызова include.

Читайте также: