大家好

之前偶然遇到一個錯誤
因為我很常用 isset 來判斷是否有設定參數,但是之前發現在某種情況之下,isset 即使該KEY在陣列中有存在,也會判斷FALSE。
原本我一直以為 isset 可以替代 array_key_exists 來做判斷,但是要注意官方對於 isset 的說明是
" isset — Determine if a variable is set and is not
NULL "
所以即使值是 空白 或false,也會true,但是如果是 null 或是未宣告,都是 false
這點要特別注意
$yy = ""; $tt = array('QQ'=>$yy); echo isset($tt['QQ']) ? 'Y':'N';//true $yy = false; $tt = array('QQ'=>$yy); echo isset($tt['QQ']) ? 'Y':'N';//true $yy = null; $tt = array('QQ'=>$yy); echo isset($tt['QQ']) ? 'Y':'N';//false
其實重點是在於,當你不明白為什麼isset是false 時,你用 print_r 是看不出來差別的,這點需要特別注意。
給大家參考!感恩!

留言板
歡迎留下建議與分享!希望一起交流!感恩!