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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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



Коктейль криптонит vilingstore.net.


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

Вложенные функции

Функции можно вызывать внутри других функций — по аналогии с тем, как одна управляющая конструкция(if, while, for и т.д.) может находиться внутри другой. Такая возможность удобна в любых программах, и в больших, и в малых, поскольку она увеличивает степень модульности приложения и упрощает сопровождение программы.

В примере, описанном выше, можно полностью избавиться от необходимости модификации даты. Для этого достаточно включить в d1splay_copyright() вызов стандартной функции РНР date():

function display_copyright($site_name) {
  print "Copyright &copy". date("Y"). "$site_name. All Rights Reserved.";
}

Параметр Y функции date() указывает, что возвращаемое значение представляет собой текущий год, отформатированный в виде четырех цифр. Если системная дата установлена правильно, РНР при каждом выполнении сценария будет выводить год. Функция РНР date() отличается исключительной гибкостью и поддерживает 25 разных флагов форматирования даты и времени.

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

Листинг 4.1. Эффективное использование вложенных функций

function display_footer($site_name) {

  function display_copyright($site_name) {

    print "Copyright &сору". date("Y") .$site_name. All Rights Reserved.";
    print "<center><a href = \"\">home</a> | <a href = \"\">recipes</a> | <a href = \"\">events</a><br> <a href = \"\">tutorials</a> | <a href = \"\">about</a> I <a href = \"\">contact us</a><br>";

    display_copyright($site_name);

    print "</center>";
  }

  $site_name = "PHP Recipes";
  display_footer($site_name);
  display_copyhght($site_name);

Сценарий выводит следующий результат:

home | recipes | events
tutorials | about | contact us
Copyright © 2001 PHP Recipes. All Rights Reserved

Обратите внимание: функцию display_copyright() можно вызвать и за пределами display_footer() по аналогии стем, как функция display_footer() использовалась в предыдущем примере. Концепция защищенных функций в РНР не поддерживается.

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

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



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





Copyright © 2005-2016 Project.Net.Ru