php数组的两种定义方式

php5.4以后的版本开始,php有两种定义数组的方式。数组是一种结构,数组里可以存放任意类型的数据。数组的索引默认是数字,是从零开始计数。

一、用array定义数组

  array(  key =>  value
     , ...
     )

 键(key)可以是一个整数 integer 或字符串 string
 值(value)可以是任意类型的值

二、用操作符 [] 定义数组

 

[
key=>value 
, ...
]

 

三、数组的访问

数组单元可以通过 array[key] 语法来访问

删除某键值对,对其调用 unset() 函数。

四、数组key和value的类型

1. key 只会是 整数(integer) 或者 字符串(string),如果是其他类型会进行数据类型转换。
2. value 可以是任意类型。

key 会有如下的强制转换:
1. 整数型的字符串会转为整数。包含有合法整型值的字符串会被转换为整型。例如键名 “8” 实际会被储存为 8。但是 “08” 则不会强制转换,因为其不是一个合法的十进制数值。
2. 浮点数转整数。浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。
3. 布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。
4. Null 会被转换为空字符串,即键名 null 实际会被储存为 “”。
5. 数组和对象不能被用为键名。否则会报错。

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

五、实例

我们定义如下的数组,最终它的键类型会转换为只有字符串或整数类型。

 "a", //整数 key
    "1"  => "b", //字符串 key
    1.5  => "c", //浮点数 key
    true => "d", //布尔型 key
    "abc" =>"e", //字符串 key
    NULL => "f", //Null型 key
);
var_dump($array);

最终数组结构为:

array(3) {
  [1] =>
  string(1) "d"
  'abc' =>
  string(1) "e"
  '' =>
  string(1) "f"
}

Process finished with exit code 0

由于键 1,”1″,1.5,true  他们最终都转为了是整数1,导致最后定义的同名键覆盖之前的定义。所以key为1的值最终为d。 

转载请注明出处哦。
  php数组键key转换图

如若转载,请注明出处:https://www.javaidea.cn/article/8089.html

(0)
上一篇 2022年2月7日 上午10:03
下一篇 2022年2月7日 上午10:03

相关推荐

发表评论

您的电子邮箱地址不会被公开。