# Ds\Deque::slice

(PECL ds >= 1.0.0)

Ds\Deque::slice — Renvoie un sous-deque d'une plage donnée

### Description

public Ds\Deque::slice(int `$index`, int `$length` = ?): Ds\Deque

Créer un sous-deque d'une plage donnée.

### Liste de paramètres

`index`

  L'index auquel commence le sous-deque.

  Si positif, le sous-deque commencera à cet index dans le deque. Si négatif, le sous-deque commencera à cette distance de la fin.

`length`

  Si une longueur est donnée et est positive, le sous-deque résultant aura jusqu'à autant de valeurs. Si la longueur entraîne un dépassement, seules les valeurs jusqu'à la fin du deque seront incluses. Si une longueur est donnée et est négative, le sous-deque s'arrêtera à autant de valeurs de la fin. Si une longueur n'est pas fournie, le sous-deque contiendra toutes les valeurs entre l'index et la fin du deque.

### Valeurs de retour

Un sous-deque de la plage donnée.

### Exemples

Exemple #1 Exemple de Ds\Deque::slice()

`<?php
$deque = new \Ds\Deque(["a", "b", "c", "d", "e"]);
// Découpe à partir de 2
print_r($deque->slice(2));
// Découpe à partir de 1, pour une longueur de 3
print_r($deque->slice(1, 3));
// Découpe à partir de 1 en avant
print_r($deque->slice(1));
// Découpe à partir de 2 en arrière
print_r($deque->slice(-2));
// Découpe de 1 à 1 de la fin
print_r($deque->slice(1, -1));
?>`

Résultat de l'exemple ci-dessus est similaire à :

    Ds\Deque Object
    (
        [0] => c
        [1] => d
        [2] => e
    )
    Ds\Deque Object
    (
        [0] => b
        [1] => c
        [2] => d
    )
    Ds\Deque Object
    (
        [0] => b
        [1] => c
        [2] => d
        [3] => e
    )
    Ds\Deque Object
    (
        [0] => d
        [1] => e
    )
    Ds\Deque Object
    (
        [0] => b
        [1] => c
        [2] => d
    )