【发布时间】:2014-11-25 00:06:20
【问题描述】:
PHP数组的整数索引和字符串索引有什么区别(当然后者叫associative array除外)?
那么比如下面两个数组有什么区别:
$intIndex[5] = "Hello";
$intIndex[6] = "World";
$intIndex[7] = "!";
和
$strIndex['5'] = "Hello";
$strIndex['6'] = "World";
$strIndex['7'] = "!";
在第一种情况下,$intIndex[0] 到 $intIndex[4] 会发生什么?
【问题讨论】:
-
它会给你一个
Undefined index 0/4PHP 警告。 -
@TiMESPLiNTER 您能否解释一下为什么会出现该错误?我认为在 PHP 中,不需要变量声明。
-
好吧,您的数组中没有键为
0或4的条目。这是此数组中的未定义索引。因此,如果您使用$intIndex[0],您将遇到Undefined indexPHP 警告。 -
@TiMESPLiNTER 好的,那块内存是未分配的吗?我的意思是,即使我直接使用$arr[1000],前999个索引也没有浪费?
-
是的,内存未分配。因为那些不道德的东西不存在。但是,一旦您给数组索引一个值,您就会“自动”分配它。所以
$intIndex[0] = 'foo';会为这个特定的索引分配内存。
标签: php arrays memory integer associative-array