我想使用这样的代码:
$arr=array('a'=>$a);
Run Code Online (Sandbox Code Playgroud)
但$a没有定义,所以我得到错误.但如果我之前写这个代码
if (!isset($a))
$a=null;
Run Code Online (Sandbox Code Playgroud)
一切都有效.为什么?在开始时$a没有定义,所以$a=null.还是underfined!=NULL?
当你写作
array("a"=>$a)
Run Code Online (Sandbox Code Playgroud)
这意味着您希望键"a"指的是名为$ a的变量引用,它首先不存在,因此您会收到错误; 但是当你添加
$a=null;
Run Code Online (Sandbox Code Playgroud)
虽然您将$ a设置为null,但实际上您正在创建一个名为$ a的变量引用,这是PHP已知的,因此不会出现错误.