zoukankan      html  css  js  c++  java
  • php array key 的存储规则

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


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

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


  • 相关阅读:
    前端面试题汇总
    前端学习计划汇总
    idea修改项目名导致无法找到主类
    idea run dashbord使用
    记git提交异常
    关于META-INF下的spring.factories文件
    lombok注解
    springcloud-ribbon&feign
    CAP定理
    git文件锁定不更新和忽略
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3360914.html
Copyright © 2011-2022 走看看