in_array に関する他のすべての記事を読みましたが、奇妙な結果が得られる理由がまだわかりません。私はこのコードを他の誰かから継承していますが、彼らが特定のことをした理由を完全には理解していません。ユーザーがログインすると、データベースからデータが取得されます。フィールドの 1 つは「レベル」です。1 は管理者、2 は通常のユーザーなどです。データベースからデータを取得したら、ユーザー レベル (a:1:{i:0;s:1:"2" として保存) を配列に入れます。
$user_level = unserialize($this->result['user_level']);
$_SESSION['unt']['user_level'] = $user_level;
後で、これが管理者かどうかを確認します。
error_log(print_r($_SESSION['abc']['user_level'])); //this is always "1"
if (in_array('1', $_SESSION['abc']['user_level'])) { //should be yes, correct?
しかし、SESSION 変数が 1 であっても、どういうわけか if ステートメントが true として評価されません。何が欠けていますか?