2015-06-09 4 views
0

Я назначил переменную в моем шаблоне Smarty 2.Добавить процент от значения переменной в шаблоне Smarty 2

{assign var="real_count" value="{$store_summary|@count}"} 
{$real_count = settype ($real_count, 'integer')} 

Моя цель состоит в том, чтобы прибавить 65% к стоимости $real_count. С данными, с которыми я работаю, у меня есть $real_count из 3, поэтому рассчитанное значение должно быть 4.95 (3 + 1.95).

Я пытаюсь использовать тег math, но я явно чего-то пропускаю.

{math equation="x * y" x=$real_count y=0.65 format="%.2f"} 
+0

Для очень простой математики используйте: {math equation = "x + 1" x = $ index} – Andrew

ответ

2

Если вы действительно хотите сделать это в шаблоне Smarty, вы можете решить, как это (немного упрощенно):

{assign var="real_count" value="3"} 
{math equation="x + (x * y)" x=$real_count y=0.65 format="%.2f"} 

Однако, я обычно советую не делать слишком много математики и других логики в шаблоне. В большинстве случаев было бы лучше сделать математику в приложении, а затем отобразить результат в шаблоне. Даже Smarty manual согласен со мной:

math является дорогостоящей функцией в производительности из-за его использования PHP eval() функции. Выполнение математики в PHP намного эффективнее, поэтому , когда это возможно, вычисляет математические вычисления в скрипте и assign() результаты в шаблон. Определенно избегать повторяющихся math вызовы функций, например, в пределах section петель.

+0

Вы правы, я принимал неправильный подход. Благодарю. – crmpicco

Смежные вопросы