私のコードでは、ループで次の行を使用して配列を埋めます:
$_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
、2 番目の項目を配列にキャストできるため、空の場合は空の配列が渡されます。このようにして、必要のないときにセッションに何も設定しないでください (後でつまずく可能性があります)。
例えば、
if (in_array('foo', (array)$_SESSION['my_array'])) {
// do something
}