2009-12-31 72 views
9

我的意思是......我将它设置为NULL。那么isset($ somethingNULL)== true?如果我将NULL赋值给变量,Will isset()会返回false吗?

+19

你为什么不自己尝试过吗? – Flatlin3 2009-12-31 15:49:54

+4

比提问更省时。你甚至可以输入将问题测试到问题本身的代码。 – meagar 2009-12-31 16:01:26

+0

现在你知道你必须搜索http://php.net/manual/ for php参考文档相关的问题:) – 2009-12-31 16:01:57

回答

23
bool isset (mixed $var [, mixed $var [, $... ]]) 

确定一个变量被设置,而不是NULL。

如果一个变量未被设置为unset(),它将不再被设置。如果测试已被设置为NULL的变量,则isset()将返回FALSE。另请注意,NULL字节(“\ 0”)不等价于PHP NULL常量。如果VAR存在,并且具有比其他NULL值,否则返回FALSE

返回值

返回TRUE。

manualExamples在同一页上。

+7

那么如何检查数组键的存在?在发现这个问题之前,我认为'isset'对'null'变量/键返回'true'。 – 2014-10-09 11:45:49

+2

@TomášZato改为使用[array_key_exists()](http://php.net/manual/en/function.array-key-exists.php)。 – Rob 2017-08-01 14:48:49

19

是 - 从ISSET() documentation

$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 
+0

演示如何自己测试它? Upvote给你,先生。 – mozillalives 2009-12-31 15:57:27

+0

而不是像我一样复制粘贴文档:D但是我们这样做是为了避免仅仅为了后面的404而放置链接(尽管不太可能发生在php.net上) – 2009-12-31 16:00:19