PHP 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>";




Содержание  Назад  Вперед