在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(自动转换为空字符串)。数组和对象不能作为键名。