支持的php操作数类型?

时间:2013-06-05 10:14:21

标签: php

当我使用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>

This is the link I am following for the code

4 个答案:

答案 0 :(得分:2)

您似乎忘记了括号,以在round函数中指定参数。你可能意味着

$res = round($division * 100);

而不是

$res = round$division * 100;

(这会让PHP认为你试图使用$作为操作数,而不是通常的+-/,{{1 }},*&%等。)

答案 1 :(得分: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

答案 2 :(得分: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";
     ?>

使用此代码没有错误,并且非常好地计算折扣上面代码的结果是折扣后的折扣价格

<强>注意:

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

答案 3 :(得分:0)

    $res = round($division * 100);

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

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