php 为空时为空?

2022-08-30 06:15:07

我有一个关于PHP的问题:NULL

  $a = '';
  if($a == NULL) {
      echo 'is null';
  }

为什么当是空字符串时,我看到是的?这是一个错误吗?$a


答案 1

您要寻找的是:

if($variable === NULL) {...}

请注意.
使用 时,像您一样,PHP 将 NULLfalse0字符串和数组视为相等。=====


答案 2

如下表所示,等效于 并具有 与 相同的功能。该表还显示了有关比较的一些棘手值。(φ表示未初始化的变量。empty($foo)$foo==nullis_null($foo)$foo===nullnull

         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   

推荐