2012-06-22 34 views
4

有一個美好的一天大家,我有話要問你的HEL,以便更好地瞭解這裏是我的代碼:智者從{數學}傳遞值方程的變量

{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); 
} 
?> 

希望你能幫助我的傢伙!

回答

11

如果你使用Smarty的3我強烈建議開溝{}數學:

{$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 - 做到這一點!

+0

嗨Rodney,即時通訊使用smarty版本2.6.18,我試過你的建議,但沒有任何顯示,我怎麼能翻譯成版本2.6.18 –

+0

我已更新我的答案以顯示Smarty2解決方案。請滿意後關閉問題 – rodneyrehm

0

嘗試使用assign參數:

從技術文檔http://www.smarty.net/docsv2/en/language.function.math.tpl

如果您提供的指定屬性,那麼{數學}函數的輸出將被分配到該模板變量而不是輸出到模板。

但它會更好,如果你做了使用PHP類似的計算(在業務邏輯層,而不是在視圖)

http://www.smarty.net/best_practices(節「保持業務邏輯中分離出來!」

+0

嗨v2p,我嘗試了你的建議,但沒有任何作品,它給了我錯誤, –