7

皆さん、良い一日をお過ごしください。ここに私のコードをよりよく理解するために、あなたのヘルに質問することがあります。

{math equation=((($order_total-$commission)+$discount+$delivery_charge)*$rate)}

私はそれを別の変数に渡したいです、phpでは私はこのようになりたいです

<?php 
  $var=0
  foreach($result as $resultA){
   $var = $var+((($order_total-$commission)+$discount+$delivery_charge)*$rate);
}
?>

あなたが私たちを助けることができることを願っています!

4

2 に答える 2

14

Smarty 3を使用している場合は、{math}を破棄することを強くお勧めします。

{$order_total = 123}
{$commission = 13}
{$discount = 10}
{$delivery_charge = 20}
{$rate = 1.1}

{$result = 0}
{$result = $result + ($order_total - $commission + $discount + $delivery_charge) * $rate}
{$result}

eval()ed読みやすく、高速です(式が何度も繰り返されるのではなく、実際にコンパイルされるため)。


Smarty 2と同等:

{assign var="order_total" value=123}
{assign var="commission" value=13}
{assign var="discount" value=10}
{assign var="delivery_charge" value=20}
{assign var="rate" value=1.1}

{assign var="result" value=0}
{math 
  assign="result"
  equation="result + (order_total - commission + discount + delivery_charge) * rate"
  result=$result
  order_total=$order_total
  commission=$commission
  discount=$discount
  delivery_charge=$delivery_charge
  rate=$rate
}
{$result}

Smarty 3にアップグレードする機会があれば、それを実行してください。

于 2012-06-22T14:26:18.030 に答える
1

assignパラメータを使用してみてください:

ドキュメントhttp://www.smarty.net/docsv2/en/language.function.math.tplから:

割り当て属性を指定すると、{math}関数の出力は、テンプレートに出力されるのではなく、このテンプレート変数に割り当てられます。

しかし、PHPを使用して同様の計算を行った場合は(ビューではなくビジネスロジックレイヤーで)より良いでしょう

http://www.smarty.net/best_practicesを参照してください(セクション「ビジネスロジックを分離してください!」

于 2012-06-22T13:11:00.460 に答える