我正在尝试将产品添加到购物车中。
我收到错误说:
警告:
中为foreach()提供的参数无效它告诉我我收到以下代码的错误:
function isInCart($id) {
if (!empty($_SESSION['sess_uid']['cart'])) {
foreach ($_SESSION['sess_uid']['cart'] as $report) {
if ($report['reportID'] == $id) {
// Report ID found in Cart
return true;
}
}
// Looped through cart, ID not found
return false;
} else {
// Cart empty
return false;
}
}
标记错误的上述特定行是:
foreach ($_SESSION['sess_uid']['cart'] as $report) {
我也收到以下错误消息:
致命错误:
中只能通过引用传递变量与此相关的代码如下:
function addToCart($id) {
$report = getReportByID($id);
$author = $report['userID'];
if (!empty($report)) {
// Got the report
if (!empty($_SESSION['sess_uid']['cart'])) {
if (!isInCart($id) && !isOwner($author) && !hasPurchased($id)) {
array_push($_SESSION['sess_uid']['cart'], $report);
return true;
} else {
return false;
}
} else {
$_SESSION['sess_uid']['cart'] = array();
if (!isInCart($id) && !isOwner($author) && !hasPurchased($id)) {
array_push($_SESSION['sess_uid']['cart'], $report);
return true;
} else {
return false;
}
}
} else {
// Unable to get report by ID
return false;
}
}
上面标记错误的特定代码行是:
array_push($_SESSION['sess_uid']['cart'], $report);
以下代码是我的报告填充商店的原因
<?php
function getReportByID($id) {
$conn = new mysqli(localhost, root, DBPASS, DBNAME);
$sql = "SELECT * FROM reports WHERE reportID = '" . $conn->real_escape_string($id)."';";
// Performs the $sql query on the server
$report = $conn->query($sql);
return $report->fetch_array(MYSQLI_ASSOC);
}
?>
非常感谢任何帮助。
由于
答案 0 :(得分:3)
我认为这会有所帮助: 它会将您的会话强制转换为数组,因此即使会话为空,也不会出现错误
foreach ((array)$_SESSION['sess_uid']['cart'] as $report) {
让我知道这是否可以解决错误?