Aktueller Standort: Startseite> Neueste Artikel> Die Differenz zwischen Länge 0 und Null in Array_Slice

Die Differenz zwischen Länge 0 und Null in Array_Slice

gitbox 2025-05-29

In PHP ist die Funktion array_slice ein übliches Werkzeug, mit dem ein Unterarray aus einem Array extrahiert wird. Sein Funktionsprototyp ist wie folgt:

 array array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false)

Wo der Parameter $ Länge verwendet wird, um die Anzahl der zu abgefangenen Elemente anzugeben. Wenn $ Länge jedoch 0 oder NULL beträgt, ist das Verhalten unterschiedlich. In diesem Artikel wird der Unterschied zwischen Array_Slice in diesen beiden Fällen ausführlich analysiert.

1. Grundanweisungen

  • $ Array : Das Eingabearray.

  • $ offset : Wo beginnt mit Abfangen, negative Zahlen werden unterstützt.

  • $ Länge : Die Anzahl der abgefangenen Elemente, die Standardnull, bedeutet, dass er bis zum Ende des Arrays abgefangen wird.

  • $ PREIVERVE_KEYS : Ob den Schlüsselnamen des ursprünglichen Arrays aufbewahrt werden soll.

2. Wenn $ Länge null ist

Wenn Sie Array_Slice aufrufen, wird PHP von $ Offset bis zum Ende des Arrays abfangen, wenn kein Parameter $ länge übergeben wird oder der in IS NULL übergebene Wert ist.

Beispiel:

 $arr = [1, 2, 3, 4, 5];
$result = array_slice($arr, 2, NULL);
print_r($result);

Ausgabe:

 Array
(
    [0] => 3
    [1] => 4
    [2] => 5
)

Erläuterung: Beginnend aus Index 2, Abfangen zum Ende des Arrays.

3. Wenn $ Länge 0 beträgt

Wenn $ Länge explizit auf 0 eingestellt ist, gibt Array_Slice ein leeres Array zurück. Das heißt, egal wie lange das Array ist, die abgefangene Länge ist Null, was bedeutet, dass keine Elemente zurückgegeben werden.

Beispiel:

 $arr = [1, 2, 3, 4, 5];
$result = array_slice($arr, 2, 0);
print_r($result);

Ausgabe:

 Array
(
)

Erläuterung: Geben Sie die Länge auf 0 an und fangen keine Elemente ab.

4. Zusammenfassung und Vergleich

Längenparameter Rückgabeergebnis veranschaulichen
NULL Alle Elemente vom Offset bis zum Ende des Arrays Standardverhalten, alle verbleibenden Elemente abfangen
0 Leeres Array Fangen Sie die Länge von 0 ab und das Ergebnis ist ein leeres Array

5. Praktische Anwendungsvorschläge

  • Wenn Sie den Schwanz des Arrays abfangen möchten, wird empfohlen, den Parameter $ Länge wegzulassen oder explizit Null zu übergeben.

  • Wenn Sie vermeiden möchten, versehentlich leere Arrays zurückzugeben, achten Sie darauf, dass Sie $ Länge nicht auf 0 einstellen.

  • Machen Sie bei dynamisch bestandenen Parametern Typ -Urteile, um zu vermeiden, dass Passing 0s die Ergebnisse beeinflusst.

6. Zusätzliche Beispiele - Halten Sie den Schlüsselnamen auf

 $arr = ['a' => 1, 'b' => 2, 'c' => 3];
$result = array_slice($arr, 1, NULL, true);
print_r($result);

Ausgabe:

 Array
(
    [b] => 2
    [c] => 3
)

Hier wird Null übergeben, um alle verbleibenden Elemente abzufangen und gleichzeitig den ursprünglichen Schlüsselnamen beizubehalten.

7. Verwandte Links