2013-06-05 91 views
0

我得到以下Fatal error: Unsupported operand types當我使用PHP操作數計算百分比,這是我使用支持的php操作數類型?

 <p> 
      <?php 
      $baseprice = get_field_object('base_price'); 
      $basediscount = get_field_object('discount_applied'); 
      ?> 
      Total price: 
      <?php 
      $division = $baseprice/$basediscount; 
      $res = round($division * 100); 
      echo $res; 
      ?> 
     </p> 

This is the link I am following for the code

+0

再次檢查 - 你的代碼工作正常,你的錯誤必須在其他地方。錯誤發生在哪條線上?什麼是完整的錯誤? [**這裏的工作代碼演示**](http://codepad.org/kTwfzsiM)。 **編輯**:如果[this](http://webcache.googleusercontent.com/search?q=cache:F2_lPwpSMcAJ:www.advancedcustomfields.com/resources/functions/get_field_object/&hl=zh-CN&gl=dk&strip=1)爲你使用的'get_field_object'方法,那麼它會返回一個對象,你需要確保'$ division = $ baseprice-> value/$ basediscount-> value'。 – h2ooooooo

+0

檢查'$ baseprice'和'$ basediscount'數據類型。我不確定它是整數還是浮點數; – Roopendra

+0

這是完整的代碼,它說32行上的錯誤:http://pastebin.com/WzNLf9Fa –

回答

1

我已經改變了你的代碼,並把它簡化它的工作原理。我檢查

 <?php 
     $baseprice = 120.00; 
     $basediscount = 10; //assuming it's 10% 
     $discount = round($baseprice*$basediscount/100); 
     $price_after_discount = $baseprice-$discount; 
     //the other option to count price after discount with 1 line 
     /*$price_after_discount = $baseprice-round($baseprice*$basediscount/100);*/ 
     echo "discount: $discount<br />"; 
     echo "price after discount $price_after_discount"; 
    ?> 

有了這個代碼沒有任何錯誤,它計算折扣非常好結果上面的代碼是折扣12折後價108

注意:

你不檢查$basediscount變量,如果它的0那麼它將是致命的錯誤,因爲你不能被0除。

+0

你在哪裏定義$ res? –

+0

你的意思是$ price_after_discount = $ baseprice- $ discount; –

+0

是的你是對的,我已經改變了$ res到$折扣,使它更具可讀性,我忘了用equatation來改變它。 – Robert

2

你似乎忘記了自己的parenthesises在指定的參數代碼round函數。你可能意味着

$res = round($division * 100); 

,而不是

$res = round$division * 100; 

(這將使PHP認爲你試圖使用$作爲操作數,而不是通常的+-/*&%,|等)

+0

我在應用 –

+0

@ rob.m時仍然遇到同樣的錯誤您是否可以用新的**完整**代碼和發生錯誤的行更新OP? **編輯**:[因爲它應該,它對我來說完全正常。你的錯誤必須在其他地方](http://codepad.org/CM5lO8pg)。 – h2ooooooo

+0

當然,只是做了 –

1

請更正您的代碼: -

$res = round($division * 100); 

見手冊如何全面工作:http://php.net/manual/en/function.round.php

檢查$baseprice$basediscount數據類型。我不確定它是整數還是浮點數。

我已經爲您生成了一個案例,如果$basepricebasediscount數組比你會得到這個錯誤。看到這裏

http://codepad.org/BjxgN2lY

如果是整數或浮點數比它一定會爲你工作: - 如下面的演示。

http://codepad.org/JC9QxMio

+0

我應用那個時候仍然有相同的錯誤 –

0
$res = round($division * 100); 

做此操作前,做if($division > 0) 即)

if($division > 0) 
{ 
    $res = round($division * 100); 
    echo $res; 
    } 
相關問題