php array key 的存储规则
刚刚写程序遇到php数组取值的问题,发现字符串和数字取出来的是一样的。
key 可以是 integer 或者string。value 可以是任意类型。
此外 key 会有如下的强制转换:
如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了。 取得时候用整数或者对于的字符串效果是一样的。
<span style="color:#000000"><span style="color:#0000BB">$array </span><span style="color:#007700">= array(<br>
</span><span style="color:#0000BB">1 </span><span style="color:#007700">=> </span><span style="color:#DD0000">"a"</span><span style="color:#007700">,<br>
</span><span style="color:#DD0000">"1" </span><span style="color:#007700">=> </span><span style="color:#DD0000">"b"</span><span style="color:#007700">,<br>
</span><span style="color:#0000BB">1.5 </span><span style="color:#007700">=> </span><span style="color:#DD0000">"c"</span><span style="color:#007700">,<br>
</span><span style="color:#0000BB">true </span><span style="color:#007700">=> </span><span style="color:#DD0000">"d"</span><span style="color:#007700">,<br>
);</span></span>
<span style="color:#000000"><span style="color:#0000BB">$array</span></span>
[1]和<span style="color:#000000"><span style="color:#0000BB">$array</span></span>
["1"],<span style="color:#000000"><span style="color:#0000BB">$array</span></span>
[true]返回的都是d,因为d覆盖了前面的值,而且key1,"1",true,在解释器看来都是1,所以是一样的。