П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 180584 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 79036 раз(а).

Учебник HTML.
Просмотров 75804 раз(а).

Руководство по PHP5.
Просмотров 46837 раз(а).

Хостинг через призму DNS.
Просмотров 54304 раз(а).

Подборка текстов стандартных документов.
Просмотров 46680 раз(а).

Учебник PHP - Самоучитель
Просмотров 52889 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 53495 раз(а).

Внешние атаки...
Просмотров 43248 раз(а).

Учебник PHP.
Просмотров 38775 раз(а).

SSI в примерах.
Просмотров 28689 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





ГЛАВА 4. Функции

Определение и вызов функций

Определить новую функцию в РНР несложно. Функции могут создаваться в любой точке программ РНР, однако по соображениям структурной организации кода удобнее разместить все функции, используемые сценарием, в самом начале сценарного файла. Существует и другой способ, заметно повышающий эффективность программирования и способствующий многократному использованию кода, — выделение функций в отдельный файл(называемый библиотекой). Библиотеки удобны тем, что их функции можно использовать в разных приложениях, не создавая лишних копий и не рискуя допустить ошибки в процессе копирования. Эта тема подробно рассматривается в разделе «Построение библиотек функций» ближе к концу главы.

Определение функции обычно состоит из трех частей:

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

Обобщенный синтаксис функций РНР выглядит так:

function имя_функции([$параметр1. $параметр2, .... $параметрn]) {
  тело функции
}

Имя функции должно подчиняться условиям, приведенным для идентификаторов в главе 2. После имени функции следуют обязательные круглые скобки, в которые заключается необязательный список входных параметров($параметр1, $параметр2, .... $параметрn). Вследствие относительно либеральных принципов определения переменных в РНР указывать тип входных параметров не нужно. Хотя такой подход имеет свои преимущества, следует помнить, что механизм РНР не проверяет аргументы на соответствие тем типам, которые должны обрабатываться функцией. Случайные ошибки в использовании входных параметров могут привести к неожиданным последствиям(чтобы убедиться в том, что параметр относится к нужному типу, можно проверить его стандартной функцией gettype()). После закрывающей круглой скобки следуют фигурные скобки, в которые заключается программный код, ассоциируемый с именем функции.

Рассмотрим простой пример использования функции. Предположим, вы хотите создать функцию для вывода лицензионной информации на web-странице:

function display_copyright() {
  print "Copyright © 2001 PHP-Powered Recipes. All Rights Reserved.";
}

Если ваш web-сайт состоит из нескольких страниц, достаточно вызвать эту функцию в конце каждой страницы — и вам не придется заново переписывать один и тот же текст. А когда наступит 2002 год, одно простое изменение текста, выводимого этой функцией, приведет к автоматическому обновлению всех страниц. Если бы не преимущества функционального программирования, вам пришлось бы вручную редактировать все страницы, на которых выводится лицензионная информация.

Рассмотрим разновидность функции display_copyright(), которой при вызове передается параметр. Предположим, вы отвечаете за администрирование нескольких web-сайтов, каждому из которых присвоено отдельное имя. На каждом сайте имеется собственный административный сценарий с несколькими переменными, относящимися к этому сайту; к их числу принадлежит переменная $site_name с именем сайта. В этом случае функцию display_copyright() можно записать следующим образом:

function display_copyright($site_name) {
  print "Copyright © 2001 $site_name. All Rights Reserved.";
}

Переменная $site_name, значение которой присваивается за пределами display_copy-right(), передается функции в качестве параметра. Переданное значение можно использовать и модифицировать в любом месте функции, однако любые изменения будут действовать лишь внутри этой функции. Впрочем, специальные ключевые слова позволяют сделать так, чтобы изменения параметров распространялись и за пределы display_copyright(). Эти ключевые слова были представлены в главе 2, в общем обзоре области видимости переменных и ее отношения к функциям.

Назад | Содержание раздела | Общее Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru