Отложенные функции предназначены для вывода нужных функций и алгоритмов выше по коду, чем там где они были вызваны.
Разработчики на 1c-Bitrix, как правило, хорошо знакомы с этой ситуацией, а все потому, что данная cms использует файловую систему структуры сайта. Чтобы для каждой страницы была возможность указывать свои title, keywords и description в мета-тегах, были реализованы отложенные функции. То есть, мета-теги запускаются непосредственно в контентной части страницы, но устанавливаются в шапке сайта. Данная технология очень важна для оптимизации сайта.
Давайте рассмотрим работу функций на примере, кстати, эта технология используется на нашем сайте:
<?
function setTitle($title,$keys,$desc){ //отложенная функция, принимающая 3 переменные, указанные в body
$out = ob_get_contents();
ob_end_clean(); //очищаем буфер
//и продолжаем код после "setTitle('титл','ключи,ключ,ключики','титл с ключами')"
echo "<title>".$title."</title>";
echo "<meta name='keywords' content='".$keys."'>";
echo "<meta name='description' content='".$desc."'>";
echo $out; //выводим все, что было до "setTitle('титл','ключи,ключ,ключики','титл с ключами')"
}
?>
<html>
<head>
<?ob_start();?> //запускается буферизация,
</head>
<body>
<?setTitle('титл','ключи,ключ,ключики','титл с ключами');?>
</body>
</html>
В итоге получаем код, так, как надо, мета-теги в head:
<html>
<head>
<title>титл</title>
<meta name="keywords" content="ключи,ключ,ключики">
<meta name="description" content="титл с ключами">
</head>
<body>
</body>
</html>
Как видите, мета-теги прописались в head несмотря на то, что мы указали их в body. В этом и есть смысл использовать отложенные функции на php, чтобы устанавливать свои определенные мета-данные на отдельной страницы, НАПРИМЕР, что ОЧЕНЬ важно для сео-продвижения.
Примерно такая реализация используется в cms 1c-Bitrix для указания мета-тегов с помощью некоторых функций.