2014-04-30 177 views
0

共有新手到PHP的問題。這裏是當前值之間的值。 0,00和1.500,00然後折扣號碼是8多功能返回

function wpsc_cart_discount_number(){ 
    global $wpsc_cart; 
    if ($total >= 0000 && $total < 1500) { 
     return $discount->wpsc_cart_discount_number = '8'; 
    } if ($total >= 1500 && $total < 3000) { 
     return $discount->wpsc_cart_discount_number = '11'; 
    } if ($total >= 3000 && $total < 7000) { 
     return $discount->wpsc_cart_discount_number = '13'; 
    } if ($total >= 7000 && $total < 10000) { 
     return $discount->wpsc_cart_discount_number = '16'; 
    } if ($total >= 10000) { 
     return $discount->wpsc_cart_discount_number = '18'; 
    } 
} 

當我調用這個函數時,它只保留返回值「8」,而不是其他什麼是錯的?

請幫

感謝

+0

爲了讓論壇上的每個人都清楚起見,如果您在問題的標題和標籤中包含更多信息,例如「PHP:函數問題中的多個返回值」或其他內容,則可能會有用 –

+0

您可能想要在這個語句中使用elseif而不是6 if語句:P但我懷疑這是問題的解決方案 – kpp

+0

嘗試過但它仍然返回與上述相同的值「8」 – user3580417

回答

1

基於這樣的事實,你不要在你的函數中的局部變量$total,它是不確定的。通過PHP的靈活的錯誤處理,這只是一個通知,而不是一個錯誤。與整數相比,未定義的值被視爲0,因此第一個條件將始終爲真。

+0

總計未預定義,它在添加到購物車過程中被計算, wpsc_cart_discount_number我使用另一個創建PDF發票的php表單,無論我的購物車中的總價是700歐元還是7000歐元,它都會在pdf折扣號碼8上顯示。下面是來自PDF生成器發票'$ params [] = array( 'unique_name'=>'$ params [] = array('unique_name'=>'cart_total','value'=> wpsc_cart_total()); \t \t \t $ params [] = array('unique_name'=>'popust','value'=> wpsc_cart_popust());' – user3580417

+0

'$ total'是一個局部變量,我在其中看不到賦值以上功能。 – mcserep

0

只是看看它我猜你沒有$總被定義。你可以把一些調試代碼,看看你$總有一個值?

或發佈更多的代碼,並且$ total被定義。