5
我很想知道在PHP中的以下行为是否打算。而且,如果有意的话,通过创建一个索引来初始化一个null变量的数组是可以接受的(就像在第一个代码片段中完成的那样)?PHP未定义的索引通知没有引起索引空变量
error_reporting(E_ALL);
$arr = null;
echo ($arr["blah"]===null) ? "null" : $arr["blah"];
$arr["blah"] = "somevalue";
echo "<br>";
echo ($arr["blah"]===null) ? "null" : $arr["blah"];
var_dump ($arr);
此输出
null
somevalue
array (size=1)
'blah' => string 'somevalue' (length=9)
然而,如果数组首先被初始化(见下面的代码),我得到完全相同的输出,而是被赋予了“未定义指数”的通知,当我第一次尝试
error_reporting(E_ALL);
$arr = array();
echo ($arr["blah"]===null) ? "null" : $arr["blah"];
$arr["blah"] = "somevalue";
echo "<br>";
echo ($arr["blah"]===null) ? "null" : $arr["blah"];
var_dump ($arr);
它的目的,但高度disrecommended。这是过去的遗留问题,而不是任何应该用于良好代码的东西。始终在使用前初始化您的变量。 –
你应该看看函数isset(),is_null()和empty()。欢迎来到松散的类型,隐含的几乎所有的地狱。 – Sammitch
我可能不完全理解这个问题,然而当“分配”时,我会使用'='运算符而不是检查===或===的条件语句吗?国际海事组织,你不能通过条件作为'回声' –