Передача параметров

Параметры могут передаваться в разных скобках, которые определяют способ обработки параметра:

{код} - выполнение кода параметра происходит при каждом обращении к нему внутри вызванного метода;
(выражение) - вычисление значения выражения в параметре происходит при каждом обращении к нему внутри вызванного метода;
[код] - выполнение кода параметра происходит один раз перед вызовом метода.

Пример на различие скобок, в которых передаются параметры:
@main[]
$a(20)
$b(10)
^sum[^
eval($a+$b)]
<hr />
^sum($a+$b)

@sum[c]
^
for[b](100;110){
   $c
}[
<br />]

Здесь хорошо видно, что в первом случае код был вычислен один раз перед вызовом метода
sum, и методу передался результат кода - число 30. Во втором случае вычисление кода происходило при каждом обращении к параметру, поэтому результат менялся в зависимости от значения счетчика.

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

Например…
    ^if(условие){когда да;когда нет}
…эквивалентно…
    ^if(условие){когда да}{когда нет}



Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 15.05.2024