работа. Занятие Функции языка На уроке будут рассмотрены функции языка php встроенные функции и php пользовательские функции Содержание Встроенные php функции
Скачать 186.36 Kb.
|
PHP занятие 5. Функции языка На уроке будут рассмотрены функции языка php: встроенные функции и php пользовательские функции Содержание: Встроенные php функции PHP пользовательские функции Создание функции php с аргументами Передача аргументов по ссылке Аргументы по умолчанию Возвращение значений функцией, Return Встроенные php функции Функция — фрагмент кода программы, который можно выполнять многократно в любом месте данной программы. Все функции языка PHP подразделяются на: встроенные пользовательские Встроенные функции — это предусмотренные синтаксисом языка конструкции, выполняющие конкретные действия. Примером могут служить рассмотренные ранее функции echo() и print(). Кроме того, есть функции для работы с изображениями, функции обработки строк, для работы с датами и временем, а также для работы с базами данных. Некоторые из них будут рассмотрены в последующих уроках. Что необходимо знать про любые функции: после названия функции всегда ставятся круглые скобки (могут быть пустые или с аргументами функции внутри, перечисленными через запятые); функция может принимать информацию из программы через список аргументов, разделенных запятыми (аргументы читаются слева направо); если в функцию передаются аргументы не того типа, на который она «рассчитывает» (например string вместо array), то будет выдаваться либо NULL либо ошибка; для вызова функции достаточно написать ее имя и список фактических аргументов в круглых скобках. Рис. 5.1. Пример использования встроенных функций php PHP пользовательские функции Пользовательские функции — те, которые не предусмотрены синтаксисом языка, а созданы пользователем в целях решения поставленной задачи. Пример: создать функцию без аргументов, которая выводит на экран приветствие Решение:
Результат: Привет! есть Внутри функции может быть любая последовательность операторов и даже описание другой функции. Все функции имеют глобальную область видимости, это значит, что они могут быть вызваны в любом месте программы, даже если были определены внутри функции и наоборот. Рассмотрим пример: Пример: создать первую функцию, внутри которой описать вторую функцию Выполнение:
Результат: Первая функция Вторая функция Пример иллюстрирует, что средства php не позволяют создавать локальных функций, т.е. которые будут «видны» только в определенных местах кода программы. В нашем случае function2() должна быть локальной, т.е. область ее видимости — только функция function1(). Вызывая локальную функцию из общей программы, должна выдаваться ошибка. Но в php данный механизм отсутствует, и ошибки нет. Таким образом обе функции в примере глобальные. СОЗДАНИЕ ФУНКЦИИ PHP С АРГУМЕНТАМИ Рассмотрим синтаксис функции с аргументами на примере Пример: создать функцию, которая выводит на экран приветствие с именем, передаваемым в качестве аргумента (например, Привет, Вася!) Решение:
Все три способа вызова функции равнозначны. Задание php 5_1: Написать функцию с двумя аргументами, возвращающую результат возведения числа в степень. Примечание: степень в php вычисляется при помощи функции pow() pow ($a, $b); где $a — число, $b — степень ПЕРЕДАЧА АРГУМЕНТОВ ПО ССЫЛКЕ Традиционно аргументы в функцию передаются по значению, т.е. если значение аргумента изменить внутри самой функции, то в общей программе с этим аргументом ничего не произойдет, он останется прежним (внутри функции аргумент локален, т.е. «не виден» на уровне общей программы). Рис. 5.2. Локальные и глобальные переменные в php Но если необходимо сделать так, чтобы функция имела возможность изменять значения аргумента и на уровне программы (глобально), то необходимо передавать аргумент по ссылке. Это делается при помощи символа амперсанд & Рис. 5.3. Передача аргумента по ссылке Пример: передавать в функцию строковый аргумент по ссылке (&str='Просто строка'). Изменить в функции значение аргумента (прибавить к ней значение ‘и кое-что еще.’) Решение:
Лабораторная работа 1: Задание 1 Опишите функцию getTable() Задайте для функции три аргумента: cols, rows, color Задание 2 Скопируйте код, отрисовывающий таблицу умножения из лабораторной работы предыдущего урока Вставьте скопированный код в тело функции getTable() Измените код таким образом, чтобы таблица отрисовывалась в зависимости от входящих параметров cols, rows и color Задание 3 Отрисуйте таблицу умножения вызывая функцию getTable() с различными параметрами АРГУМЕНТЫ ПО УМОЛЧАНИЮ В php в пользовательских функциях можно задавать значения по умолчанию для аргументов. Т.е. если в программе не передать значение аргумента, то аргумент примет то значение, которое установлено по умолчанию. Рис. 5.4. Значение по умолчанию Пример: создать функцию с аргументом для вывода приветствия. Установить значение по умолчанию для аргумента равное «Гость» Решение:
Важно: аргументы, для которых определены значения по умолчанию, должны находиться правее аргументов, для которых значения по умолчанию не установлены Задание php 5_2: откройте выполненную лабораторную работу этого урока. Продолжите выполнение задания: Задание 4 Откройте предыдущее задание с отрисовкой таблицы в функции. Измените входящие параметры функции gettable() на параметры по умолчанию Задание 5 Отрисуйте таблицу умножения вызывая функцию getTable() без параметров Отрисуйте таблицу умножения вызывая функцию getTable() с одним параметром Отрисуйте таблицу умножения вызывая функцию getTable() с двумя параметрами Возвращение значений функцией, Return Функция может не только выполнять какие-то конкретные действия, выводя их значения на экран, она также может просто возвращать в программу какие-то вычисленные значения. Внутри такой функции используется оператор возврата return (с англ. «вернуть»), после которого указывается возвращаемое значение (или переменная, массив, выражение и т.п.) Вызов такой функции осуществляется либо через присваивание переменной, либо сразу через вывод на экран. Пример: описать функцию с двумя аргументами, возвращающую сумму данных аргументов Решение:
Задание php 5_3: описать функцию с одним аргументом, возвращающую степень двойки. Степень передавать в качестве аргумента. Установить значение по умолчанию (=2) для аргумента Лабораторная работа 2: Задание 1 Опишите функцию getMenu() Задайте для функции первый аргумент menu, в него будет передаваться массив, содержащий структуру меню Задайте для функции второй аргумент vertical со значением по умолчанию равным TRUE (логический тип данных — true-истина, false-ложь). Данный параметр указывает, каким образом будет отрисовано меню — вертикально или горизонтально Задание 2 Откройте файл c лабораторной работой с отрисовкой меню Скопируйте код, который создает массив menu и вставьте скопированный код в данный документ Скопируйте код, который отрисовывает меню Вставьте скопированный код в тело функции getMenu() Измените код таким образом, чтобы меню отрисовывалась в зависимости от входящих параметров menu и vertical Задание 3 Отрисуйте вертикальное меню вызывая функцию getMenu() с одним параметром Отрисуйте горизонтальное меню вызывая функцию getMenu() со вторым параметром равным FALSE Сохраните код в отдельном файле |