在寫 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 |
用表來看是不是就很清楚了呢?