跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

php array key 的储存规则

php array key 的存储规则 刚刚写程序遇到php数组取值的问题,发现字符串和数字取出来的是一样的。 key 可以是 integer 或者 string 。 value 可以是任意类型。 此外 key 会有如下的强制转换: 包含有合法整型值的字符串会被转换为整型。例如键名"8"实际会被储存为8。但是"08"则不会强制转换,因为其不是一个合法的十进制数值。 浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名8.7实际会被储存为8。 布尔值也会被转换成整型。即键名true实际会被储存为1而键名false会被储存为0。 Null会被转换为空字符串,即键名null实际会被储存为""。 数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type。 如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了。 取得时候用整数或者对于的字符串效果是一样的。
$array = array(
    
1    => "a",
    
"1"  => "b",
    
1.5  => "c",
    
true => "d",
);
$array
[1]和
$array
["1"],
$array
[true]返回的都是d,因为d覆盖了前面的值,而且key1,"1",true,在解释器看来都是1,所以是一样的。

相关文章