在PHP中,数组的键名可以是整数或字符串。具体来说,PHP数组的键名有以下几种类型:
整数键名:
$array = [0 => 'a', 1 => 'b', 2 => 'c'];字符串键名:
$array = ['name' => 'Alice', 'age' => 25];混合键名:
$array = [0 => 'a', 'name' => 'Alice'];自动生成的整数键名:
$array = ['a', 'b', 'c']; 等同于 $array = [0 => 'a', 1 => 'b', 2 => 'c'];浮点数键名:
$array = [3.5 => 'a']; 实际上会变成 $array = [3 => 'a'];布尔值键名:
true 会被转换为整数 1,false 会被转换为整数 0。$array = [true => 'a', false => 'b']; 实际上会变成 $array = [1 => 'a', 0 => 'b'];NULL键名:
NULL 作为键名时,PHP会将其转换为空字符串 ""。$array = [null => 'a']; 实际上会变成 $array = ["" => 'a'];数组和对象键名:
"Array" 或 "Object"。$array = [[1, 2] => 'a']; 会导致 $array = ["Array" => 'a'];'Name' 和 'name' 是两个不同的键名。$array = [
0 => 'a', // 整数键名
'name' => 'Alice', // 字符串键名
3.5 => 'b', // 浮点数键名,会被转换为整数 3
true => 'c', // 布尔值键名,会被转换为整数 1
null => 'd', // NULL键名,会被转换为空字符串 ""
];
print_r($array);
输出:
Array
(
[0] => a
[name] => Alice
[3] => b
[1] => c
[] => d
)
总结来说,PHP数组的键名可以是整数、字符串、浮点数(自动转换为整数)、布尔值(自动转换为整数)和NULL(自动转换为空字符串)。数组和对象不能作为键名。