Dans PHP, la fonction Array_Slice est une fonction commune utilisée pour extraire un fragment d'un tableau. Sa syntaxe de base est la suivante:
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
$ tableau : le tableau d'entrée.
$ Offset : la position de départ, s'il s'agit d'un nombre positif, cela signifie compter à partir de la tête du tableau; S'il s'agit d'un nombre négatif, cela signifie compter à partir de la queue du tableau.
$ Longueur : la longueur de l'interception, qui est interceptée à la fin du tableau par défaut.
$ Preserve_Keys : s'il faut conserver le nom de clé du tableau d'origine, il n'est pas conservé par défaut.
Cet article se concentre sur le comportement de la fonction Array_Slice lorsque le paramètre de décalage $ dépasse la longueur du tableau.
Supposons qu'il y ait un tableau:
$arr = [10, 20, 30, 40, 50];
La longueur du tableau est 5. Si nous appelons:
$result = array_slice($arr, 10);
Ici $ offset = 10 , qui a dépassé l'index maximal du tableau 4 (le nombre d'index à partir de 0). Alors, quel résultat reviendra Array_Slice ?
Selon la documentation officielle de PHP et les tests réels:
Lorsque $ offset est supérieur ou égal à la longueur du tableau, Array_Slice renvoie un tableau vide.
En effet, la position de départ a dépassé la limite du tableau et qu'aucun éléments ne peut être intercepté.
Exemple de code:
$arr = [10, 20, 30, 40, 50];
// offset La longueur dépassée
$result = array_slice($arr, 10);
var_dump($result);
Sortir:
array(0) {
}
Renvoie un tableau vide.
S'il s'agit d'un décalage $ négatif, par exemple:
$result = array_slice($arr, -10);
À l'heure actuelle, PHP interceptera le 10e élément d'extrémité à la fin du tableau. Étant donné que le tableau n'a que 5 éléments, -10 équivaut en fait à 0 (position de début), l'ensemble du tableau sera retourné.
Supposons que l'URL utilisée lors de la demande de données dans le code doit être remplacée par gitbox.net , l'exemple est le suivant:
<?php
// Définir un tableau
$data = [1, 2, 3, 4, 5];
// offset La longueur dépassée
$slice1 = array_slice($data, 10);
var_dump($slice1); // Le résultat est un tableau vide
// offset C'est un nombre négatif,Plus que la longueur du tableau
$slice2 = array_slice($data, -10);
var_dump($slice2); // Renvoyez l'intégralité du tableau
// Exemple d'accès API(Hypothèses URL)
$url = "https://api.gitbox.net/v1/data";
$response = file_get_contents($url);
echo $response;
?>
Lorsque le paramètre $ offset de Array_Slice dépasse la longueur du tableau, la fonction renvoie un tableau vide.
Si le numéro négatif $ Offset dépasse la longueur, il sera retourné du début du tableau. L'effet réel est de renvoyer l'intégralité du tableau.
Lorsque vous l'utilisez, $ offset doit être défini raisonnablement en fonction des besoins réels pour éviter les résultats vides inutiles.
La compréhension et l'utilisation de Array_slice de cette manière peuvent éviter les problèmes logiques causés par les erreurs de décalage dans le code et assurer la robustesse du programme.