警告:in_array()期望参数2为数组,空给出
问题描述:
尝试向会话添加数据(并检查它是否已存在)时,出现以下警告。警告:in_array()期望参数2为数组,空给出
警告:in_array()预计参数2是数组,空给出
我该如何解决这个问题?
它指的是代码:
if(isset($_GET['product']) && !in_array($_GET['product'], $_SESSION['product'])){
$_SESSION['product'][] = $_GET['product'];
}
在清洁的浏览器中添加的第一个产品的时候,我只得到这样的警告。当我删除它并添加另一个产品时,警告消失了。同样如果我添加第二个产品。
答
警告说这一切。此参数为空:
$_SESSION['product']
确保在使用它之前设置它。例如:
if(isset($_SESSION['product']) && isset($_GET['product']) && !in_array($_GET['product'], $_SESSION['product'])){
$_SESSION['product'][] = $_GET['product'];
}
+0
谢谢,简单的解决方案:)我会在10分钟内接受。 – twan
+0
@twan很高兴我能帮忙:) – malutki5200
答
您的$_SESSION['product']
为空。 试试这个,
if(!empty($_SESSION['product']) && isset($_GET['product']) && !in_array($_GET['product'], $_SESSION['product'])){
$_SESSION['product'][] = $_GET['product'];
}
它应该工作。
答
检查该值是否在与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'];
}
答
你应该总是申请支票阵列
isset($_SESSION['product']) in your is condition before & condition
似乎'$ _SESSION [ '产品']'这么想的包含任何数据。尝试打印'$ _SESSION ['product']' –
'$ _SESSION ['product']'为空 –
我可以知道哪一个返回数组$ _SESSION ['product']或$ _GET ['product']? –