- •Иркутский государственный университет путей сообщения кафедра “информатика” программирование на языке php
- •Иркутск
- •Содержание
- •Внедрение php-сценария в html-документ
- •Алфавит языка
- •Служебные слова
- •Типы данных
- •Комментарии
- •Переменные
- •Математические функции
- •Математические константы
- •Выражения
- •Операторы присваивания
- •Проверка существования переменной
- •Isset(переменная);
- •Is_string(переменная);
- •Мои поздравления!
- •Платежная ведомость
- •Отладочная печать
- •Var_dump(переменная);
- •Форматирование чисел
- •Number_format(переменная, точность, разделитель1, разделитель2);
- •Массивы
- •Создание массивов
- •Многомерные массивы
- •Операции над массивами Перемещение по массиву
- •Копирование массивов
- •Сортировка массивов
- •Запись значений элементов массива в переменные из списка
- •Преобразование массива в текстовую строку
- •Преобразование текстовой строки в массив
- •Функции для работы с массивами
- •Глобальные предопределенные массивы
- •Работа с формой Работу выполнил студент группы ис-09 Пупкин Василий
- •Дата и время
- •Mktime(час, мин, сек, месяц, день, год);
- •1972450760 Секунд 547902.98888889 часов 22829.291203704 дней 62.546003297818 лет
- •Date(формат, число);
- •Strtotime(дата_время, число);
- •Функции
- •Рекурсия
- •Функция dumper()
- •Функции для работы со строками
- •Регулярные выражения
- •Автономные функции
- •Текстовые файлы
- •Включение файлов
- •Получение информации о файле
- •Блокировка файлов
- •Бинарные файлы
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Пример записи алгоритма:
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •Действие альтернативы:
- •If (условие)
- •Вариант 2 – с использованием операции конъюнкции
- •Часто встречающиеся ошибки программирования:
- •Переключатель
- •Часто встречающиеся ошибки программирования:
- •Бесконечные циклы
- •Циклы с предусловием
- •Программа:
- •Часто встречающиеся ошибки программирования:
- •Циклы с постусловием
- •Программа:
- •Циклы с параметром
- •Действия цикла:
Переключатель
Часто приходится делать выбор не между двумя, а между несколькими путями решения задачи. Такую ситуацию называют переключателем:
В языке PHPпереключатель реализуется оператором:
switch (селектор)
{
case метка-1: оператор-1;
break;
case метка-2: оператор-2;
break;
case метка-3: оператор-3;
break;
. . . . . . . . . . . . . . . . .
default: оператор-n;
}
где switch- служебное словопереключатель,
case- служебное слововариант,
селектор- переменная или выражениецелоготипа (обязательно ставится в скобках);
метка-1, метка-2,…-метки вариантов– значения селектора –
целые числа, символы или имена констант,
break- служебное словопрервать,
default- служебное словопо умолчанию(не обязательно).
Действия оператора:
вычисляется значение селектора,
это значение отыскивается среди меток вариантов,
выполняется оператор, стоящий за найденной меткой,
если далее стоит оператор break, то осуществляется выход из переключателя, иначе выполняется следующий оператор в нем,
если метка не найдена, то выполняется оператор, стоящий за словом default.
В любой ветви оператора swithмогут стоять несколько меток вариантов, разделенныхдвоеточием:
switch (селектор)
{
case метка-1: case метка-2: case метка-3: оператор-1;
break;
case метка-4: case метка-5: оператор-2;
break;
case метка-6: оператор-3;
break;
. . . . . . . . . . . . . . . . .
default: оператор-n;
}
Эту структуру можно представить в следующем виде:
switch (селектор)
{
case метка-1:
case метка-2:
case метка-3: оператор-1;
break;
case метка-4:
case метка-5: оператор-2;
break;
case метка-6: оператор-3;
break;
. . . . . . . . . . . . . . . . .
default: оператор-n;
}
Внимание!Метки вариантов не должны повторяться!
Если в переключателеубрать операторыbreak, то после выполнения оператора, стоящей за найденной меткой вариантов, выполняются все оставшиеся операторы, в том числе и оператор после словаdefault:
$i = 5;
switch ($i)
{
case 0: echo “<BR>Это цифра ноль”;
case 1: case 2: echo “<BR>Это цифра один или два”;
default: echo “<BR>Это неизвестная цифра”;
}
При вводе цифры 0на экран будут выведены сообщения:
Это цифра ноль
Это цифра один или два
Это неизвестная цифра
Для того, чтобы после выполнения нужной ветви оператора switchдругие операторы не выполнялись, каждая ветвь должна заканчиваться операторомbreak:
$i = 5;
switch ($i)
switch ($i)
{
case 0: echo “<BR>Это цифра ноль”;
break;
case 1: case 2: echo “<BR>Это цифра один или два”;
break;
default: echo “<BR>Это неизвестная цифра”;
}
В этом случае после ввода цифры 0на экран будет выведено только одно сообщение:
Это цифра ноль
Если в каждой ветви switchстоит не по одному, а по нескольку операторов, то необходимо брать их в фигурные скобки:
switch (селектор)
{
case метка-1:
{
оператор;
оператор;
оператор;
break;
}
case метка-2:
{
оператор;
оператор;
break;
}
. . . . . . . . . . . . . . . . .
default:
{
оператор;
оператор;
}
}
Для улучшения читаемости программы необходимо использовать сдвиг операторов.
Можно использовать вложенные операторы switch, при этом в разных операторах могут быть одинаковые метки вариантов:
switch ($n)
{
case 0: оператор;
break;
case 1: switch ($m)
{
case 0: оператор;
break;
case 1: оператор;
break;
default: оператор;
}
case 3: оператор;
break;
. . . . . . . . . . . . . . . . .
default: оператор;
}
Пример: по заданному номеру месяца года определить количество дней в нем. В этом переключателе всеготриветви:
<?php
$month = 5;
switch ($month)
{
case 1: case 3: case 5:
case 7: case 8: case 10:
case 12: echo “<BR>31 день”;
break;
case 4: case 6: case 9:
case 11: echo “<BR>30 дней”;
break;
case 2: echo “<BR>28 дней”;
break;
default: echo “<BR>Такого месяца нет<BR>”;
}
?>