
- •Методические указания к выполнению лабораторных работ Предисловие
- •Библиографический список
- •Лабораторная работа № 1 Тема №1. ИнсталляцияMySqLи создание локального сервера
- •1. Цель работы
- •2. Основные технические возможности
- •3. Описание установки
- •4. Порядок выполнения работы
- •5. Содержание отчета
- •Лабораторная работа № 1
- •6. Содержание отчета
- •Лабораторная работа № 2 Тема №1. Создание баз и таблиц данных
- •1. Цель работы
- •2. Основные сведения
- •3. Программа работы
- •4. Указания к выполнению работы
- •3. Программа работы
- •00 Проверка моего домена с именем Moy.Loc
- •4. Указания к выполнению работы
- •5. Содержание отчета
- •3. Указания к выполнению работы
- •Задание 2: Разработать html-форму с методом Post
- •Тема №2. Передача значений переменным в сценариях php. Использование возможностей метода get без html-формы для передачи значений переменных в сценариях php
- •Тема №3. Создание формы и рнр-сценария в одном файле
- •Задание 1: Получение данных из текстового поля
- •I курсив
- •Тема №4. Использование чисел. Управляющие структуры
- •Тема №5. Использование управляющей структурыswitch
- •Тема № 6. Использование регулярных выражений в сценариях рнр
- •Проверка ошибок
- •Задание 1. Вывод информации о ошибочно заполненных полях формы
- •Задание 2. Использование функций пользователя для контроля полей формы
- •Задание 3. Проверка ограничений в текстовом поле.Lab6_0_2.Php
- •Задание 4. Специфика имени пользователя. Lab6_0_3.Php
- •Задание 5. Специфика имени пользователя с помощью JavaScript. Lab6_0_4.Php
- •Тема №7. Работа с массивами
- •Задание 1. Означивание массива и вывод на экран. Lab7_0.Php.
- •Задание 4. Сортировка массива.Lab7_3.Php.
- •Тема №8. Функции в сценариях рнр
- •Задание 1. Вложенные функции.Lab8_0_0.Php
- •Задание 2. Объявление функций внутри других функций.Lab8_0.Php
- •Задание 3. Возврат значений функцией.Lab8_1.Php
- •Задание 4. Возврат нескольких значений функцией.Lab8_2.Php
- •Задание 5. Возвращение функцией нескольких величин.Lab8_3.Php
- •Задание 6. Рекурсивные функции .Lab8_4.Php
- •Задание 7. Функции-переменные.Lab8_5.Php
- •Задание 8. Построение библиотек функций.Lab8_6_0.Php.
- •Задание 9. Построение шаблона сайта.Lab8_7_0.Php.
- •Тема №9. Использование файлов для хранения данных в сценариях рнр
- •Создание сценария загрузки.
- •Задание 3. Сохранение пользовательских данных в текстовом файлеLab9_5.Php
- •Задание 4. Сохранение пользовательских данных в текстовом файлеLab9_6_0.Php
- •Тема № 10. Работа с каталогами в сценариях рнр
- •Тема №11. Создание панели управления файлами
- •Задание 1. Разработать форму и сопутствующее ей приложение для панели управления файлами.
- •Тема № 12.Работа с базой через монтторMySql и PhpMyAdmin
- •Задание 1. Создать базу данных через командную строку
- •Задание 3. Вставка данных в базу данных
- •Задание 4. Создание командных файлов и файлов сценариев для вставки данных в базу данных.
- •Тема № 13. Извлечение данных из базы данных
- •Задание 1. Оператор выборки данныхSelect
- •Задание 2. Извлечение данных по определенному критерию
- •Задание 3. Извлечение данных из нескольких таблиц
- •Задание 4. Поиск несоответствующих строк
- •Задание 5. Использование псевдонимов имен таблиц (as)
- •Задание 6. Извлечение данных в определенном порядке
- •Задание 7. Группировка и агрегирование данных
- •Задание 8. Обновление записей в базе данных (update)
- •Задание 10. Удаление записей, таблиц и базы данных (delete)
- •Тема № 14.Php и MySql. Доступ к базе данных MySql из Web с помощью рнр
- •Задание 1. Изучение работы архитектуры Web-баз данных
- •Задание 2. Проверка и фильтрация данных, исходящих от пользователя. Использование объектно-ориентированного синтаксисаPhp
- •Задание 3. Внесение новой информации в базу данных. Проверка и фильтрация данных, исходящих от администратора
- •Задание 4. Создание и удаление баз данных
- •Содержание
Задание 1. Вложенные функции.Lab8_0_0.Php
Функции можно вызывать внутри других функций -- по аналогии с тем, как одна управляющая конструкция (if, while, for и т. д.) может находиться внутри другой. Такая возможность удобна в любых программах, и в больших, и в малых, поскольку она увеличивает степень модульности приложения и упрощает сопровождение программы.
В примере, описанном выше, можно полностью избавиться от необходимости модификации даты. Для этого достаточно включить в display_copyright() вызов стандартной функции PHP date( ):
function display_copyright($site_name)
{
print "Copyright © ". date("Y"). "$site_name. All Rights Reserved.";
}
Рис. 3.100. Простейшая функция с параметром и без констант.
Параметр у функции date( ) указывает, что возвращаемое значение представляет собой текущий год, отформатированный в виде четырех цифр.
Ниже на рис. 3.101 приведен пример описания и вызова фунцкии в файле Lab8_0_0.php. На рис. 3.102 показан результат вывода на экран работы функции display_copyright.
Рис. 3.101. Простейшая функция с параметром и без констант.
Рис. 3.102. Результат работы функции display_copyright.
Примечание.
Далее, для удобства, на рисунках будет
приводиться только PHP
код (информация между тегами
и
).
Задание 2. Объявление функций внутри других функций.Lab8_0.Php
Также допускается объявление функций внутри других функций. Тем не менее, вложенное объявление еще не делает функцию «защищенной», то есть не ограничивает возможность ее вызова той функцией, в которой она была объявлена. Более того, вложенная функция не наследует параметров родительской функции; параметры должны передаваться ей точно так же, как и любой другой функции.
Пример вложенного объявления приведен в листинге рис. 3.103.
Рис. 3.103. Использование вложенных функций.
Сценарий выводит следующий результат:
Рис. 3.104. Результат Lab8_0.php.
Обратите внимание: функцию display_copyright( ) можно вызвать и за пределами display_footer( ). Концепция защищенных функций в PHP не поддерживается. Так, например, если строку с номером 31 на рис 3.103 раскоментарить, то получим следующий результат (рис. 3.105).
Хотя вложенные функции не защищены от вызова из других точек сценария, они не могут вызываться до вызова своей родительской функции. При попытке вызвать вложенную функцию раньше вызова родительской функции выводится сообщение об ошибке.
Рис. 3.105. Результат Lab8_0.php после модификации.
Задание 3. Возврат значений функцией.Lab8_1.Php
По завершении работы функции часто бывает полезно вернуть некоторое значение, для чего результат вызова функции обычно присваивается некоторой переменной. Функции могут возвращать значения любых типов, в том числе массивы и списки. Пример приведен в листинге 3.106, где функция calculate_cost( ) вычисляет налог с заданной суммы и возвращает общую сумму вместе с налогом.
Рис. 3.106. Листинг Lab8_1.php.
Краткое описание алгоритма.
Перед вызовом функции задаются значения переменных: $price (цена товара) и $tax (налоговая ставка).
Объявляется функция calculate_cost( ). При вызове функция получает два параметра: налоговую ставку и цену товара. Она вычисляет цену с учетом налога и возвращает ее командой return.
В теле программы вызывается calculate_cost() и значение возвращенное функцией, присваивается переменной $total_cost.
Далее выводятся соответствующие сообщения (рис. 3.107).
Рис. 3.107. Результат Lab8_1.php.
Функции, не возвращающие значений, также называются процедурами.