PHP数组:整数索引与字符串索引
PHP数组的整数索引和字符串索引之间有什么区别吗(当然,除了后者被称为PHP数组:整数索引与字符串索引,php,arrays,memory,integer,associative-array,Php,Arrays,Memory,Integer,Associative Array,PHP数组的整数索引和字符串索引之间有什么区别吗(当然,除了后者被称为关联数组) 例如,以下两个数组之间有什么区别: $intIndex[5] = "Hello"; $intIndex[6] = "World"; $intIndex[7] = "!"; 及 在第一种情况下,$intIndex[0]到$intIndex[4]?来自(强调矿): 键可以是整数或字符串。该值可以是任意值 类型 此外,将执行以下键的强制转换: 包含有效整数的字符串将强制转换为整数类型。例如,键“8”实际上将存储在8下
关联数组
)
例如,以下两个数组之间有什么区别:
$intIndex[5] = "Hello";
$intIndex[6] = "World";
$intIndex[7] = "!";
及
在第一种情况下,$intIndex[0]
到$intIndex[4]
?来自(强调矿):
键可以是整数或字符串。该值可以是任意值
类型
此外,将执行以下键的强制转换:
- 包含有效整数的字符串将强制转换为整数类型。例如,键“8”实际上将存储在8下。另一方面 将不强制转换指针“08”,因为它不是有效的十进制整数
- 浮点数也被转换为整数,这意味着小数部分将被截断。例如,键8.7实际上将存储在 8.
- [……]
您可以用来验证所有这些。它会给您一个
未定义索引0/4
PHP警告。@TiMESPLiNTER您能解释一下为什么它会出现这个错误吗?我认为在PHP中,不需要变量声明。在数组中没有键为0
或4
的条目。它是此数组中未定义的索引。因此,如果您使用$intIndex[0]
您将遇到未定义索引
PHP警告。@TiMESPLiNTER正常,那么内存是否未分配?我的意思是,即使我直接使用$arr[1000],前999个索引也不会被浪费?是的,内存是未分配的。因为那些索引不存在。但只要给数组索引一个值,就可以“自动”分配它。所以$intIndex[0]=“foo”代码>将为此特定索引分配内存。
$strIndex['5'] = "Hello";
$strIndex['6'] = "World";
$strIndex['7'] = "!";