配列の添え字に null を使うと、空文字列になる。
で、空文字列と 0 とは別物。
<? $a = array(); $a[-2] = "foo"; $a[null] = "hoge"; $a[""] = "piyo"; // ← $a[null] を上書きする $a[] = "bar"; // ← 添え字の最大値+1(ただし最大値がマイナスの時は0) print_r($a);
Array ( [-2] => foo [] => piyo [0] => bar )
Null は空文字列にキャストされます。つまり、キーに null を指定すると、実際には "" として格納されます。
PHP: 配列 - Manual