我正在编写代码来显示某些产品的价格。如果价格为0,则不会显示任何内容。
<? if ($book->price_euro != 0) {$europrice = number_format($book->price_eur, 2); echo "€$europrice";}?>
<? if ($book->price_gbp != 0) {$gbpprice = number_format($book->price_gbp, 2); echo "£$gbpprice";}?>
<? if ($book->price_usd != 0) {$usdprice = number_format($book->price_usd, 2); echo "$$usdprice";}?>
这与"0.00欧元,33.00英镑,66.00美元"相呼应。欧元的价格定为99欧元。我看不出有任何理由将其回声为0!我做错什么了吗?语法错误?
$europrice = number_format($book->price_eur, 2
不应该是$book->price_euro
吗?
欧洲中的打字
number_format($book->price_eur, 2); // This is what you have.
number_format($book->price_euro, 2); // This is what you need.
如果没有看到更多信息,我看不出这段代码有什么问题。但也许是你的变量?
<? if ($book->price_euro != 0) {$europrice = number_format($book->price_eur, 2); echo "€$europrice";}?>
price_eur
应该是price_euro
吗?
number_format($book->price_eur, 2);
应该是
number_format($book->price_euro, 2);
null值导致了您的问题。
您可能仍然会得到null值或其他东西,请尝试使用空值代替
<? if (empty($book->price_euro)) {$europrice = number_format($book->price_euro, 2); echo "€$europrice";}?>
<? if (empty($book->price_gbp)) {$gbpprice = number_format($book->price_gbp, 2); echo "£$gbpprice";}?>
<? if (empty($book->price_usd)) {$usdprice = number_format($book->price_usd, 2); echo "$$usdprice";}?>