在實際測試中php讀取json數組時 使用簡單的 if 或者 array_key_exists 去判斷對象是否存在是會報錯的,以下是google搜尋的正確判斷方法
實際上出現報錯只是我對php還不是很精通 因此可能我認為正確的判斷方法同樣不是最完美的解決方法甚至是錯誤的 此篇博文留作自用
錯誤代碼:
$structure = imap_fetchstructure($connection, $id, FT_UID); if (array_key_exists('parts', $structure)) { }
會出現報錯 Warning: array_key_exists() expects parameter 2 to be array, boolean given
正確的解決方案是:
if (is_array($structure) && array_key_exists('parts', $structure))
{ //...magic stuff here
}
而還有一種就是使用 isset 來直接判斷:
if(isset($structure['parts'])) { }
//這個函數用來測試變量是否已經配置。若變量已存在則返回 true 值。其它情形返回 false 值。
//因此需要若變量存在且值不為NULL,才返回 TURE