📜  PHP | Ds\Sequence slice()函数(1)

📅  最后修改于: 2023-12-03 15:33:32.541000             🧑  作者: Mango

PHP | Ds\Sequence slice()函数

简介

slice()函数是PHP Ds\Sequence接口提供的一个方法,用来返回一个子序列。它的作用类似于PHP内置函数array_slice()。

语法
public function slice(int $index, int|null $length = null): Sequence

该方法接受两个参数:

  • $index:指定子序列的起始位置,$index为0时表示从第一个元素开始。
  • $length(可选参数):指定子序列的长度。如果未指定,则将返回从$index开始的所有元素。

该方法返回一个包含子序列的新的Ds\Sequence对象。

示例
// 创建一个包含10个元素的Sequence对象
$sequence = new \Ds\Sequence(range(1, 10));

// 返回第5个元素和后面的所有元素
$subSequence = $sequence->slice(4); // 等价于 $subSequence = $sequence->slice(4, null);

// 返回第2个元素和后面的4个元素
$subSequence = $sequence->slice(1, 4);

// 返回最后3个元素
$subSequence = $sequence->slice(-3);

print_r($subSequence->toArray()); // 输出 [7, 8, 9, 10]
注意事项
  1. $index必须大于或等于0且小于等于当前Ds\Sequence对象的元素个数,否则会抛出OutOfBoundsException异常。
  2. $length必须大于或等于0,否则会抛出InvalidArgumentException异常。
  3. 如果$index是负数,则表示偏移量是从末尾开始的,-1代表倒数第一个元素。
  4. 与PHP内置函数array_slice()不同的是,序列中的负数索引将被当作计算索引(即偏移量从0开始,等同于正数索引),而不是从末尾计算的。
参考链接
  • PHP Ds\Sequence官方文档:https://www.php.net/manual/en/class.ds-sequence.php#ds-sequence.methods.slice