这有什么区别吗……
if (is_null($var)) {
do_something();
}
还有这个?
if ($var === null) {
do_something();
}
在检查变量是否包含空值时,哪种形式更好?有没有我应该注意的边缘情况? (我初始化了所有变量,所以不存在的变量不是问题。)
最佳答案
✅
是 true
❌
是 false
| isset | is_null | === null | == null | empty |
|-------|----------|---------|----------|---------|---------|
| unset | ❌ | ✅ | ✅ | ✅ | ✅ |
| null | ❌ | ✅ | ✅ | ✅ | ✅ |
| true | ✅ | ❌ | ❌ | ❌ | ❌ |
| false | ✅ | ❌ | ❌ | ✅ | ✅ |
| 0 | ✅ | ❌ | ❌ | ✅ | ✅ |
| 1 | ✅ | ❌ | ❌ | ❌ | ❌ |
| \0 | ✅ | ❌ | ❌ | ❌ | ❌ |
| "" | ✅ | ❌ | ❌ | ✅ | ✅ |
| [] | ✅ | ❌ | ❌ | ✅ | ✅ |
总结:🔸♦️🔸
empty
等价于== null
is_null
等价于=== null
isset
是is_null
和=== null
的逆
重要的一点是 empty
和 isset
如果它们的参数是 undefined variable ,则不会触发 PHP 警告。因此,如果您希望始终定义您正在测试的变量或数组索引,请使用运算符,否则使用该函数。
关于php - is_null($var) 和 ($var === null) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662588/