math

Имя аттрибута Тип Обязателен По умолчанию Описание
equation строка (string) Да n/a математической выражение
format строка (string) Нет n/a формат рузультата (sprintf)
var numeric Да n/a переменная выражения
assign строка (string) Нет n/a переменная шаблона, которой будет присвоен вывод
[var ...] numeric Да n/a дополнительные переменные выражения

пользовательская функция math позволяет дизайнерам шаблонов вычислять математические выражения в шаблоне. Любая численная переменная шаблона может быть использована в выражении. Переменные, используемые в выражении, передаються в качестве параметров, которые могут быть как и переменные шаблона, так и статические щначения. Допустимые операторы: +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans и tan. Ознакомтесь с php документацией под данным функциям.

Если указан аттрибут "assign", то вывод будет присвоен переменной, вместо отображения.

Техническое Замечание: использование функции math значительно сказывается на времени выполнения программы, так как реализована с помощью php функции eval(). Выполнение математических операций в php программе более эффективно, то есть следует везде, где возможно, делать вычисления в программе и передавать результ в шаблон. Следует также избегать повторяющегося вызова функции math (например в циклах).

Пример 8-14. math

{* $height=4, $width=5 *}

{math equation="x + y" x=$height y=$width}

OUTPUT:

9


{* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *}

{math equation="height * width / division"
      height=$row_height
      width=$row_width
      division=#col_div#}

OUTPUT:

100


{* можно использовать скобки *}

{math equation="(( x + y ) / z )" x=2 y=10 z=2}

OUTPUT:

6


{* можно указать формат результата (sprintf) *}

{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}

OUTPUT:

9.44