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

标签 php

这有什么区别吗……

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
  • issetis_null=== null
  • 的逆

重要的一点是 emptyisset 如果它们的参数是 undefined variable ,则不会触发 PHP 警告。因此,如果您希望始终定义您正在测试的变量或数组索引,请使用运算符,否则使用该函数。

关于php - is_null($var) 和 ($var === null) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662588/

相关文章:

php - Preg_match 仅按顺序工作

php - 用额外的字段保存 HABTM?

PHP - MYSQL 查询结果

php - "Add [name] to fillable property to allow mass assignment on [Illuminate\Foundation\Auth\User]."

PHP MySQL SQL 解析器(插入和更新)

php - URL 不接受字母数字参数 - Yii2-app-basic

php循环抛硬币直到出现2个正面,然后停止

PHP ssh2.sftp 停止工作

php - 如果源是内容类型视频,则 jw 播放器视频无法正常工作

php - 在 Localhost XML 正在生成,但在服务器中它正在创建 Empty Xml