php号码是否存储为字符串?

时间:2018-04-13 09:34:49

标签: php wordpress string woocommerce integer

我正在使用wordpress / woocommerce并获得这样的产品的价格:

$get_price = get_post_meta( $item_id, '_regular_price', true);

然后我计算折扣并将其删除:

$discount = 10;    
$minus = ($discount / 100) * $get_price;
$price = wc_price($get_price - $minus);

出于某种原因,我收到以下错误:

CRITICAL Uncaught Error: Unsupported operand types in ..... 

指向以$ minus = ...

开头的行

我使用“gettype”进行了一些挖掘,发现woocommerce价格存储为字符串,而不是整数。

然后我将上面的内容改为此以确保它现在是一个整数:

$discount = 10;    
$minus = ($discount / 100) * (int)$get_price;
$price = wc_price($get_price - $minus);

现在可行,但它将产品的价格从13.97英镑降低到13.00英镑。任何想法为什么会这样?还有什么理由将价格首先存储为字符串?

修改

我现在尝试了以下内容:

$get_price = get_post_meta( $item_id, '_regular_price', true);
$new_price = (float) $get_price;
echo gettype($new_price);

仍然返回字符串。

1 个答案:

答案 0 :(得分:-2)

$discount = '10';将此更改为

$discount = 10;

因为$discount = '10';被视为字符串

你可以使用

 var_dump($discount);

检查数据类型

希望它有所帮助: - )