如果我给变量赋值NULL,isset()会返回false吗?

ope*_*rog 12 php null isset

我的意思是......我将它"设置"为NULL.那么isset($ somethingNULL)==是吗?

OMG*_*ies 29

是的 - 来自ISSET()文档:

$foo = NULL;
var_dump(isset($foo));   // FALSE

/* Array example */
$a = array ('test' => 1, 'hello' => NULL);

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['hello']));           // FALSE
Run Code Online (Sandbox Code Playgroud)

  • 演示如何自己测试?先生,请为您投票。 (2认同)

Gre*_*osz 27

bool isset ( mixed $var [, mixed $var [, $... ]] )
Run Code Online (Sandbox Code Playgroud)

确定变量是否已设置且不为NULL.

如果使用unset()取消设置变量,则将不再设置该变量.如果测试已设置为NULL的变量,则isset()将返回FALSE.另请注意,NULL字节("\ 0")不等于PHP NULL常量.

返回值

如果var存在并且其值不是NULL,则返回TRUE,否则返回FALSE.

手册.同一页面上的示例.

  • 那么如何检查数组密钥的存在呢?在发现这个问题之前,我认为`isset`为`null`变量/键返回`true`. (9认同)
  • @TomášZato改为使用[array_key_exists()](http://php.net/manual/en/function.array-key-exists.php). (5认同)