我已閱讀in_array上的所有其他文章,但仍不明白爲什麼我會得到奇怪的結果。我從別人那裏繼承了這個代碼,並沒有完全理解他們爲什麼做了某些事情。當用戶登錄時,數據從數據庫中獲取,其中一個字段是其「級別」。 1是管理員,2是普通用戶等。一旦數據從數據庫中抓取,我們將用戶級別(存儲爲1:{i:0; s:1:「2」)存儲到一個數組中:php in_array給出奇數結果
$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?
但不知怎麼的if語句永遠評估爲真,即使session變量1.什麼我缺少什麼?
你的print_r應該有真正的作爲第二個參數,如果你傳遞的結果,而不是打印它,例如error_log(print_r($ _ SESSION ['abc'] ['user_level'],true)); – AsksAnyway