[php]陣列 的 isset 判斷的注意事項

日期:2016/05/26

 

大家好
之前偶然遇到一個錯誤
因為我很常用 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 是看不出來差別的,這點需要特別注意。
 
給大家參考!感恩!

 

相關文章

【PHP】 setlocale() 函数

【PHP】簡單使用COOKIE用法

留言板

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

comments powered by Disqus