尝试将数据添加到会话时(并检查它是否已存在),我收到以下警告。
警告:in_array()期望参数2为数组,给定
为null
我该如何解决这个问题?
它所指的代码:
if(isset($_GET['product']) && !in_array($_GET['product'], $_SESSION['product'])){
$_SESSION['product'][] = $_GET['product'];
}
在清理的浏览器上添加第一个产品时,我只收到此警告。当我删除它并添加另一个产品时,警告消失了。如果我添加第二个产品也一样。
答案 0 :(得分:2)
警告说这一切。这个参数为空:
$_SESSION['product']
确保在使用之前设置它。示例:
if(isset($_SESSION['product']) && isset($_GET['product']) && !in_array($_GET['product'], $_SESSION['product'])){
$_SESSION['product'][] = $_GET['product'];
}
答案 1 :(得分:1)
您的$_SESSION['product']
为空。
试试这个,
if(!empty($_SESSION['product']) && isset($_GET['product']) && !in_array($_GET['product'], $_SESSION['product'])){
$_SESSION['product'][] = $_GET['product'];
}
它应该有用。
答案 2 :(得分:1)
在使用isset之前检查是否设置了值,并使用is_array检查给定变量是否为数组。
if(isset($_GET['product']) && is_set($_SESSION['product']) && is_array($_SESSION['product']) && !in_array($_GET['product'], $_SESSION['product'])){
$_SESSION['product'][] = $_GET['product'];
}
答案 3 :(得分:0)
你应该总是对数组进行检查
isset( $_SESSION['product']) in your is condition before & condition