在我的代码中,我在循环中使用这一行填充数组:
$_SESSION['my_array'][] = $some_value;
每次执行此行后,我会使用function in_array()
进行一些检查(此处无关紧要)。但是,在第一次迭代中它说:
« in_array() expects parameter 2 to be array ».
如何解决这个问题?
答案 0 :(得分:3)
您可以初始化数组(在填充值之前),如下所示:
$_SESSION['my_array']=array();
这样你可以确定它是数组,即使它是空的。
答案 1 :(得分:0)
您正在错误地分配和访问
使用此
$_SESSION['my_array'] = $some_value;
答案 2 :(得分:0)
当你进行in_array
检查时,可以将第二个项目转换为数组,所以如果它是空的,那么它将传递一个空数组。这样你就不会在你不需要的时候为会话设置任何东西(这可能会让你以后绊倒)
如,
if (in_array('foo', (array)$_SESSION['my_array'])) {
// do something
}