is_null($var)和($var === null)有什么区别?

php
2022-08-30 07:57:51

这有什么区别吗...

if (is_null($var)) {
    do_something();
}

和这个?

if ($var === null) {
    do_something();
}

在检查变量是否包含 null 时,哪种形式更好?是否有任何我应该注意的边缘情况?(我初始化我所有的变量,所以不存在的变量不是问题。


答案 1

true

false

        | isset   | is_null | ===null | ==null  | empty   |
|-------|---------|---------|---------|---------|---------|
|  null |    ❌   |    ✅   |    ✅   |    ✅  |    ✅   |
|  true |    ✅   |    ❌   |    ❌   |    ❌  |    ❌   |
| false |    ✅   |    ❌   |    ❌   |    ✅  |    ✅   |
|     0 |    ✅   |    ❌   |    ❌   |    ✅  |    ✅   |
|     1 |    ✅   |    ❌   |    ❌   |    ❌  |    ❌   |
|    \0 |    ✅   |    ❌   |    ❌   |    ❌  |    ❌   |
| unset |    ❌   |    ✅   |    ✅   |    ✅  |    ✅   |
|   ""  |    ✅   |    ❌   |    ❌   |    ✅  |    ✅   |

总结:


答案 2

推荐