2

在我的代码中,我在循环中使用这一行填充了一个数组:

 $_SESSION['my_array'][] = $some_value;

每次执行此行后,我都会使用function in_array(). 但是,在第一次迭代中它说:

« in_array() expects parameter 2 to be array ».

如何解决这个问题?

4

3 回答 3

3

您可以像这样初始化数组(在填充值之前):

$_SESSION['my_array']=array();

这样你就可以确定它是数组,即使它是空的。

于 2013-04-22T11:04:20.687 回答
0

您错误地分配或访问它

用这个

$_SESSION['my_array'] = $some_value;
于 2013-04-22T11:06:09.653 回答
0

当您进行in_array检查时,您可以将第二个项目转换为一个数组,因此如果它是空的,那么它将传递一个空数组。这样你就不会在不需要时为会话设置任何东西(这可能会在以后绊倒你)

例如,

if (in_array('foo', (array)$_SESSION['my_array'])) {
  // do something
}
于 2013-04-22T11:10:31.147 回答