0

下面的代码在 PHP 中,并从 XML 响应文件返回价格。

$price = $result->Items->Item->OfferSummary->LowestNewPrice->FormattedPrice; //lowest new price 
$listPrice = $result->Items->Item->Offers->Offer->OfferListing->Price->FormattedPrice; //list price

如果我回显 $price 或 $listPrice 它可以工作

我希望得到两个价格之间的差异,但如果我这样做了,我会得到 NULL

$savings = $listPrice - $price; or $savings = ($listPrice - $price);

欢迎任何帮助

4

3 回答 3

2

您很可能试图从字符串中减去一个字符串。您需要将值转换为数字类型。如果您使用价格,您可能需要浮点数:

$price = floatval($result->Items->Item->OfferSummary->LowestNewPrice->FormattedPrice); //lowest new price 
$listPrice = floatval($result->Items->Item->Offers->Offer->OfferListing->Price->FormattedPrice); //list price

$savings = $listPrice - $price;
于 2013-04-14T16:08:09.083 回答
1

我假设 $price 和 $listprice 是数字(整数或双精度数),因此在单独回显它们时它们可能看起来是数字,但它们可能是带有空格的字符串,阻止它们被解析。尝试使用 trim() 删除空格(例如,$price = trim($price))。

于 2013-04-14T16:06:13.823 回答
0

虽然它们可能看起来是数字,但将它们转换为浮点数可能是值得的,只是为了确保。

$savings = floatval($listPrice) - floatval($price);
于 2013-04-14T16:07:50.323 回答