Es ist eine Geschichte von "na und", aber ich fand es interessant, dass das Verhalten in jeder Sprache unterschiedlich war.
JavaScript
var arr = [];
arr[100] = 'foo';
console.log(arr.length); //=> 101
console.log(arr[0]); //=> undefined
console.log(arr[101]); //=> undefined
Undefinierte Indizes geben "undefiniert" zurück.
Das Deklarieren von "use strict"; "ändert nichts am Ausführungsergebnis.
Perl
my @arr;
$arr[100] = 'foo';
print $#arr; #=> 100
print defined $arr[0] ? 1 : 0; #=> 0
print defined $arr[101] ? 1 : 0; #=> 0
Undefinierte Indizes scheinen wie JavaScript "undef" zu sein.
Durch die Deklaration von "use strict;" wird das Ausführungsergebnis nicht geändert.
Ruby
arr = []
arr[100] = 'foo'
p arr.size #=> 101
p arr[0] #=> nil
p arr[101] #=> nil
Es ist fast das gleiche wie JavaScript / Perl, aber es wird "Null". Dies liegt wahrscheinlich daran, dass es kein Äquivalent zu "undefiniert" gibt.
PHP
$arr = array();
$arr[100] = 'foo';
echo count($arr); //=> 1
echo is_null($arr[0]); //=> 1
echo is_null($arr[101]); //=> 1
Der undefinierte Index ist "null".
Die Länge des Arrays beträgt 1, was sich von anderen Sprachen unterscheidet. Dies scheint in PHP der Fall zu sein, da sowohl die Liste als auch der Hash (Wörterbuch) "Array" sind.
Der Zugriff auf einen undefinierten Index führt zu einem Fehler auf der Ebene "E_NOTICE". (Siehe Kommentare für Details)
error_reporting(E_ALL); // E_Auf Ausgabe einstellen HINWEIS
$arr = array();
$arr[100] = 'foo';
echo $arr[0]; //=> Notice: Undefined offset: 0
Python
arr = []
arr[100] = 'foo' #=> IndexError: list assignment index out of range
Wenn Sie versuchen, auf einen nicht vorhandenen Index zu verweisen / diesen zuzuweisen, erhalten Sie "IndexError". Ich denke, dass dies das einfachste Verhalten ist.