在我的代码中,我在循环中使用以下行填充数组:
$_SESSION['my_array'][] = $some_value;
在每次执行这一行之后,我使用function in_array()
做一些检查(这里不重要是为了什么目的)。然而,在第一次迭代时,它说:
« in_array() expects parameter 2 to be array ».
如何解决这个问题?
您可以像这样初始化数组(在填充值之前):
$_SESSION['my_array']=array();
这样你就可以确定它是一个数组,即使它是空的
您正在错误地分配或访问它
使用
$_SESSION['my_array'] = $some_value;
当你做in_array
检查时,你可以将第二项转换为一个数组,所以如果它是空的,那么它将传递一个空数组。这样,当您不需要设置会话时,您就不必为会话设置任何内容(这可能会在以后绊倒您)
。
if (in_array('foo', (array)$_SESSION['my_array'])) {
// do something
}