在寫 PHP 的時候會遇到要判斷是否有值,這時候就可能會把 isset() 和 empty() 這兩個很像的東西搞混,這邊來整理一下差別。
基本上 isset 判斷的是 "變數"是否存在,而 empty 判斷的是 "值"時否有,如果這個值是字串或是 0 的話都會回傳 true,用一張表來比較一下:
isset() | empty() | |
undefined | FALSE | TRUE |
null | FALSE | TRUE |
0 | TURE | TRUE |
"0" | TURE | TRUE |
1 | TURE | FALSE |
"" | TRUE | TRUE |
"PHP" | TRUE | FALSE |
用表來看是不是就很清楚了呢?