我一直在https://secure.php.net/manual/en/function.isset.php的PHP网站上查看isset()的文档。该函数的返回值显然如下:
如果var存在且值不是NULL,则返回TRUE。否则就错了。
设置为NULL的变量和未设置的变量之间有什么区别?如果$variable = NULL
是真的吗? isset($variable)
将返回FALSE,表示该变量未设置?
编辑:那么我如何能够区分值为NULL的变量和不存在的变量?
答案 0 :(得分:1)
设置为NULL的变量和未设置的变量之间的区别是什么?
查看resolve表#1(| Expression | gettype() | empty() | is_null() | isset() | if($x) |
|-----------------+-----------+---------+-----------+---------+--------|
| $x = null; | NULL | TRUE | TRUE | FALSE | FALSE |
| var $x; | NULL | TRUE | TRUE | FALSE | FALSE |
| $x is undefined | NULL | TRUE | TRUE | FALSE | FALSE |
与PHP函数的比较)。 #2-#4行读了:
$x
你能发现它们之间有什么区别吗?我也不是。
但有一点不同。如果未定义变量if($x)
,PHP types comparison,gettype($x)
,NULL
以及尝试获取其值的任何代码都会触发通知(“注意:未定义的变量: X“)。 is_null()
和empty()
在他们的论证不存在时不会触发任何错误,警告或通知,因为他们的目的是对他们的论证的存在和价值进行分类。
那么我如何才能区分值为
NULL
的变量和不存在的变量?
除了如上所述触发的通知之外,值为NULL
的变量与不存在的变量之间没有区别。即使通知只是提示代码中可能存在的错误或提高其可读性的方法,但无论有没有,行为都是一样的。
我无法弄清楚从存储componentDidMount
的变量中分离未定义变量的任何实际用法。
什么使变量存在PHP?