The Sequence interface

(PECL ds >= 1.0.0)

Introduction

A Sequence describes the behaviour of values arranged in a single, linear dimension. Some languages refer to this as a "List". It’s similar to an array that uses incremental integer keys, with the exception of a few characteristics:

  • Values will always be indexed as [0, 1, 2, …, size - 1].
  • Only allowed to access values by index in the range [0, size - 1].

Use cases:

Interface synopsis

interfaceDs\SequenceextendsDs\Collection, ArrayAccess {
abstractpublicallocate(int$capacity): void
abstractpublicapply(callable$callback): void
abstractpubliccapacity(): int
abstractpubliccontains(mixed...$values): bool
abstractpublicfilter(callable$callback = ?): Ds\Sequence
abstractpublicfind(mixed$value): mixed
abstractpublicfirst(): mixed
abstractpublicget(int$index): mixed
abstractpublicinsert(int$index, mixed...$values): void
abstractpublicjoin(string$glue = ?): string
abstractpubliclast(): mixed
abstractpublicmap(callable$callback): Ds\Sequence
abstractpublicmerge(mixed$values): Ds\Sequence
abstractpublicpop(): mixed
abstractpublicpush(mixed...$values): void
abstractpublicreduce(callable$callback, mixed$initial = ?): mixed
abstractpublicremove(int$index): mixed
abstractpublicreverse(): void
abstractpublicreversed(): Ds\Sequence
abstractpublicrotate(int$rotations): void
abstractpublicset(int$index, mixed$value): void
abstractpublicshift(): mixed
abstractpublicslice(int$index, int$length = ?): Ds\Sequence
abstractpublicsort(callable$comparator = ?): void
abstractpublicsorted(callable$comparator = ?): Ds\Sequence
abstractpublicsum(): int|float
abstractpublicunshift(mixed$values = ?): void
publicArrayAccess::offsetSet(mixed$offset, mixed$value): void
}

Changelog

VersionDescription
PECL ds 1.3.0 The interface now extends ArrayAccess.

Table of Contents

To Top