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
我可能不完全理解這個問題,然而當「分配」時,我會使用'='運算符而不是檢查===或===的條件語句嗎?國際海事組織,你不能通過條件作爲'回聲' –