问答详情
源自:4-7 PHP-务必使用带引号字符串做键值

当数组的下班是小数的时候,下标会变成什么???

提问者:Lamper1021 2014-10-19 14:50

个回答

  • sophia_yu
    2014-10-20 11:01:47

    关于数组的下标也就是key值的数据类型转换,有以下说明:

    key 可以是 integer 或者 string。

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

    1、包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。 

    2、浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。 

    3、布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。 

    4、Null 会被转换为空字符串,即键名 null 实际会被储存为 ""。 

    5、数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type。

    此外,如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了。

    建议做个试验执行看看结果。