Отложенные функции предназначены для вывода нужных функций и алгоритмов выше по коду, чем там где они были вызваны.
Разработчики на 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 для указания мета-тегов с помощью некоторых функций.