当我使用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>
答案 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
数据类型。我不确定它是整数还是浮点数。
如果$baseprice
或basediscount
数组比您收到此错误,我已为您生成一个案例。看到这里
如果它是int或float,它肯定会对你有用: - 如下面的演示。
答案 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;
}