0

当我使用 php 操作数计算百分比时,我得到以下Fatal error: Unsupported operand types信息,这是我正在使用的代码

       <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>

这是我正在关注的代码链接

4

4 回答 4

2

您似乎忘记了在round函数中指定参数的括号。你可能是说

$res = round($division * 100);

并不是

$res = round$division * 100;

(这会使 PHP 认为您试图将其$用作操作数,而不是通常的+, -, /, *, &,%|

于 2013-06-05T10:15:15.573 回答
1

请更正您的代码:-

 $res = round($division * 100);

请参阅手册如何圆工作: http: //php.net/manual/en/function.round.php

检查$baseprice$basediscount数据类型。我不确定它是整数还是浮点数。

如果$basepricebasediscount数组比你会得到这个错误,我已经为你生成了一个案例。看这里

http://codepad.org/BjxgN2lY

如果它是 int 或 float,那么它肯定会为您工作:- 如下例所示。

http://codepad.org/JC9QxMio

于 2013-06-05T10:15:28.143 回答
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";
     ?>

使用此代码没有错误,并且可以很好地计算折扣 上面代码的结果是折扣 108 后的折扣 12 价格

注意:

您不检查$basediscount变量,如果它为 0,那么它将是致命错误,因为您不能除以 0

于 2013-06-05T10:26:13.310 回答
0
    $res = round($division * 100);

在执行此操作之前,请检查if($division > 0 ) ie)

if($division > 0 )
 {
   $res = round($division * 100);
    echo $res;
  }
于 2013-06-05T10:26:19.667 回答