Heim  >  Artikel  >  Backend-Entwicklung  >  php array key 的储存规则

php array key 的储存规则

WBOY
WBOYOriginal
2016-06-13 12:36:22934Durchsuche

php array key 的存储规则

刚刚写程序遇到php数组取值的问题,发现字符串和数字取出来的是一样的。


key 可以是 integer 或者stringvalue 可以是任意类型。

此外 key 会有如下的强制转换:

  • 包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。
  • 浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8
  • 布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0
  • Null 会被转换为空字符串,即键名 null 实际会被储存为 ""
  • 数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type

如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了。 取得时候用整数或者对于的字符串效果是一样的。

<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,所以是一样的。


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn