我想让我的用户将值存储在$_SESSION
变量中,我有以下代码:
<?php
if(!empty($_SESSION["shopping_cart"])) {
$total = 0;
foreach($_SESSION["shopping_cart"] as $keys => $values) { ?>
<tr>
<td><?php echo $values["item_name"]; ?></td>
<td><?php echo $values["item_quantity"]; ?></td>
<td>฿<?php echo $values["item_price"]; ?></td>
<td><?php echo number_format($values["item_quantity"] *
$values["item_price"], 7); ?></td>
<td><a href="atcform.php?action=delete&id=<?php echo $values["item_id"]; ?>
"><span class="remove-span">Remove</span></a></td>
</tr>
<?php
$total = $total + ($values["item_quantity"] * $values["item_price"]);
}
?>
<tr>
<td colspan="3" align="right">Total</td>
<td align="right">$<?php echo number_format($total, 7); ?></td>
</tr>
<?php
}
?>
当我运行它时,它说:
注意:第76行和第72行在C:\ Users \ auser \ Desktop \ XAMPP \ htdocs \ Website1 \ atcform.php中遇到的格式不正确的数值
这两行是number_format
所在的位置,我想消除这些错误,请告诉我是否需要查看更多代码。
谢谢!
答案 0 :(得分:1)
看起来number_format()
中的值之一不是数字类型。
尝试在floatval()
中转换数值:
number_format(floatval($values["item_quantity"]) * floatval($values["item_price"]), 7);
甚至更好的是,通过在循环开始时重新分配值,确保在对它们进行任何数值运算之前确保它们是浮点型的。
foreach ($_SESSION["shopping_cart"] as $keys => $values) {
$values["item_quantity"] = floatval($values["item_quantity"]);
$values["item_price"] = floatval($values["item_price"]);
....