<ctpp/> главная .:. скачать .:. документация .:. faq .:. разработчикам  
o Главная
    Скачать!
    Установка

o Помощь
    Что такое CTPP?
    Как работает CTPP?
    Онлайн-документация
    FAQ

o В действии
    Проекты
    Первые шаги
    Как сделать?..
    Разработчикам

o В разработке
    Тесты производительности
    Расписание
    Разработчики

    Благодарности




Вызов функции из функции

В отличие от первой версии, шаблонизатор CTPP2 позволяет указывать функцию в виде аргумента другой функции. Делается это следующим образом:


<TMPL_var HREF_PARAM("foo", DATE_FORMAT(1200490323, "%Y-%m-%d %H:%M:%S"))>

Когда компилятор шаблонов находит подобную конструкцию, генерируется следующий код

N + 0: PUSH      STRING (`foo`)
N + 1: PUSH      INT (1200490323)
N + 2: PUSH      STRING (`%Y-%m-%d %H:%M:%S`)
N + 3: SYSCALL   DATE_FORMAT(ARGS: 2)
N + 4: SYSCALL   HREF_PARAM(ARGS: 2)
N + 5: OUTPUT

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


Copyright © 2003 - 2008 CTPP Dev Team.