In PHP, ein indiziertes Array speichert Schlüssel-Wert- Paare von Daten unter Verwendung von Nicht-Null- Zahlen als Schlüssel . Das erste Array-Element hat einen Schlüssel von Null und nachfolgenden Elemente sind fortlaufend nummeriert . Ein Array, das Zeichenfolgen als Schlüssel verwendet wird als ein assoziatives Array . Wenn Sie ein Array-Element mit einem ganzzahligen Schlüssel, der außerhalb der Grenzen der gültigen Schlüssel in einem Array zuzugreifen , erhalten Sie eine " undefined offset" Fehler. Die äquivalente Fehler für ein assoziatives Array ist ein " undefined index "-Fehler. Initialisierung mit Array Funktion
Ein Weg, um ein Array in PHP zu erstellen, ist die "array" -Funktion verwenden. Übergeben Sie eine geordnete Liste von Elementen und PHP wird ein indiziertes Array dieser Elemente mit Null beginnend erstellen. Zum Beispiel:
< php $ dayofweek = ? $ dayofweek [2]; //gibt " Di " echo $ dayofweek [5] //gibt "Fri "
Undefined offset
"undefiniert Offset "Fehler in PHP tritt auf, wenn Sie ein Array-Element verweisen mit einem Array -Index-Wert , der nicht existiert versuchen . Wenn Sie neu in die Programmierung sind, können Sie vergessen, dass die indizierte Arrayelement Tasten beginnen mit null, nicht eine, und am Ende mit der Anzahl der Elemente im Array minus eins. Zum Beispiel wird der folgende Code erzeugen ein " undefined offset" Fehler in PHP , weil die " dayofweek " Array hat sieben Elemente bei Indizes null bis sechs , nicht eins bis sieben :
echo $ dayofweek [7] ;
Initialisierung durch eine Funktion
Sie können auch ein Array initialisieren , indem er gleich auf den Rückgabewert einer Funktion, die ein Array zurückgibt , oder durch Übergabe eines Arrays mit Bezug auf eine Funktion , die das Array ändern wird . Zum Beispiel:
$ array = initialize_array (); //eine Funktion , die ein Array zurückgibt
Wenn Sie unsicher sind, was das letzte Element in dem Array von der Funktion zurückgegeben wird, sind und Sie versuchen, auf ein Array-Element nach dem letzten definierten ganzzahligen Schlüssel zugreifen , erhalten Sie eine " undefined offset" Fehler.
Vermeidung Mit Count
ein Weg, um zu vermeiden, ein " ; undefined offset " Fehler ist es, die Integer-Schlüssel Sie verwenden, um die Array-Werte mit einer Schleife , wie eine Referenz Control " for "-Schleife . Verwenden Sie den "count "-Funktion , um die Anzahl der Elemente in einem Array zu identifizieren , und erstellen Sie eine " for"-Schleife von Element Null bis zum letzten Element . Beispielsweise berechnet der folgende Code die Anzahl der Elemente in einem Array in eine Schleife, die nicht mehr als die Array Grenze schaffen :
$ numdays = count ($ dayofweek ); //gibt 7für ( $ i = 0 ; $ i < $ numdays ; $ i + +) echo "
" . $ dayofweek [$ i] . " "; //Elemente nummeriert null bis sechs
Vermeidung Mit dem " isset " Function
Eine weitere Möglichkeit, eine "zu vermeiden undefined offset " Fehler ist es, die mit" isset "-Funktion . Diese Funktion wird "true " oder "false ", je nachdem , ob Sie eine Array-Wert mit dem angegebenen Schlüssel zurück. Es wird nicht auslösen " undefined offset" Fehler, wenn das Ergebnis falsch ist. Bevor Sie ein Array-Element referenzieren versuchen , rufen Sie die " isset "-Funktion , um zu sehen , ob es existiert. Zum Beispiel der folgende Code einen Zähler , bis es erreicht eine Array-Schlüssel außerhalb der Arraygrenzen :
$ day = -1; while ( isset ($ dayofweek [+ + $ day ] ) ) echo " < ; li> " . $ dayofweek [ $ day ] . " ";