PHP Basics

StrictCollection
in package
implements ArrayAccess, Countable, Serializable Uses ArrayAccessTrait, CountableTrait, TypeChecker

A type-sensitive, unsorted collection.

Holds items as key/value pairs where keys have to be valid array keys while values can be of any type. To restrict allowed data types for items, provide the constructor with an array of atomic types or fully qualified class names.

Internally it holds the items in the protected $_data array.

Tags
author

Sebastian Meyer sebastian.meyer@opencultureconsulting.com

template

AllowedType of mixed

Table of Contents

Interfaces

ArrayAccess
Countable
Serializable

Methods

__construct()  : void
Create a type-sensitive collection of items.
add()  : void
Add/insert a item at the specified index.
clear()  : void
Clear the collection of any items.
count()  : int<0, max>
Count the data items.
get()  : AllowedType
Get the item at the specified index.
getAllowedTypes()  : array<string|int, string>
Get allowed data types.
hasAllowedType()  : bool
Check if a value's data type is allowed.
isAllowedType()  : bool
Check if a data type is allowed.
isEmpty()  : bool
Check if collection is empty.
isList()  : bool
Check if this collection can be considered a list.
offsetExists()  : bool
Check if the specified offset exists.
offsetGet()  : TValue|null
Retrieve data at the specified offset.
offsetSet()  : void
Set the item at the specified offset.
offsetUnset()  : void
Unset the specified offset.
remove()  : void
Remove an item from the collection.
serialize()  : string
Get string representation of $this.
set()  : void
Set an item at the specified index.
setAllowedTypes()  : void
Set allowed data types.
toArray()  : array<string|int, AllowedType>
Return array representation of collection.
toStrictList()  : StrictList<string|int, AllowedType>
Turn collection into a type-sensitive list.
unserialize()  : void
Restore $this from string representation.

Methods

__construct()

Create a type-sensitive collection of items.

public __construct([array<string|int, string> $allowedTypes = [] ]) : void
Parameters
$allowedTypes : array<string|int, string> = []

Allowed data types of items (optional)

If empty, all types are allowed. Possible values are:

  • "array"
  • "bool"
  • "callable"
  • "countable"
  • "float" or "double"
  • "int" or "integer" or "long"
  • "iterable"
  • "null"
  • "numeric"
  • "object" or FQCN
  • "resource"
  • "scalar"
  • "string"
Tags
throws
InvalidArgumentException

if any value of $allowedTypes is not a string

add()

Add/insert a item at the specified index.

public add(string|int $offset, AllowedType $value) : void
APIYes
Parameters
$offset : string|int

The item's index

$value : AllowedType

The item

Tags
throws
InvalidDataTypeException

if $value is not of allowed type

clear()

Clear the collection of any items.

public clear() : void
APIYes

count()

Count the data items.

public count() : int<0, max>
APIYes
Return values
int<0, max>

The number of data items

get()

Get the item at the specified index.

public get(string|int $offset) : AllowedType
APIYes
Parameters
$offset : string|int

The item's index

Tags
throws
OutOfRangeException

when $offset is out of bounds

Return values
AllowedType

The item

getAllowedTypes()

Get allowed data types.

public getAllowedTypes() : array<string|int, string>
APIYes
Return values
array<string|int, string>

The list of allowed data types

hasAllowedType()

Check if a value's data type is allowed.

public hasAllowedType(mixed $value) : bool
APIYes
Parameters
$value : mixed

The value to check

Return values
bool

Whether the value's data type is allowed

isAllowedType()

Check if a data type is allowed.

public isAllowedType(string $type) : bool
APIYes
Parameters
$type : string

The type to check

Return values
bool

Whether the data type is allowed

isEmpty()

Check if collection is empty.

public isEmpty() : bool
APIYes
Return values
bool

Whether the collection contains no items

isList()

Check if this collection can be considered a list.

public isList() : bool
APIYes

It is considered a list if all keys are consecutive integers starting from 0.

Tags
see
StrictCollection::toStrictList()
Return values
bool

Whether the collection is a list

offsetExists()

Check if the specified offset exists.

public offsetExists(string|int $offset) : bool
APIYes
Parameters
$offset : string|int

The offset to check for

Return values
bool

Whether the offset exists

offsetGet()

Retrieve data at the specified offset.

public offsetGet(string|int $offset) : TValue|null
APIYes
Parameters
$offset : string|int

The offset to retrieve

Return values
TValue|null

The value at the offset or NULL if invalid

offsetSet()

Set the item at the specified offset.

public offsetSet(string|int|null $offset, AllowedType $value) : void
APIYes
Parameters
$offset : string|int|null

The offset being set

$value : AllowedType

The new item for the offset

Tags
throws
InvalidDataTypeException

if $value is not of allowed type

throws
InvalidArgumentException

if $offset is not a valid array key

offsetUnset()

Unset the specified offset.

public offsetUnset(string|int $offset) : void
APIYes
Parameters
$offset : string|int

The offset to unset

remove()

Remove an item from the collection.

public remove(string|int $offset) : void
APIYes
Parameters
$offset : string|int

The item's key

Tags
throws
OutOfRangeException

when $offset is out of bounds

serialize()

Get string representation of $this.

public serialize() : string
Return values
string

The string representation

set()

Set an item at the specified index.

public set(string|int $offset, AllowedType $value) : void
APIYes
Parameters
$offset : string|int

The item's index

$value : AllowedType

The item

Tags
throws
InvalidDataTypeException

if $value is not of allowed type

setAllowedTypes()

Set allowed data types.

public setAllowedTypes([array<string|int, string> $allowedTypes = [] ]) : void
APIYes
Parameters
$allowedTypes : array<string|int, string> = []

Allowed data types

Tags
throws
InvalidArgumentException

if any value of $allowedTypes is not a string

toArray()

Return array representation of collection.

public toArray() : array<string|int, AllowedType>
APIYes
Return values
array<string|int, AllowedType>

Array of collection items

toStrictList()

Turn collection into a type-sensitive list.

public toStrictList() : StrictList<string|int, AllowedType>
APIYes
Tags
throws
DomainException

if the collection is not a list

see
StrictCollection::isList()
Return values
StrictList<string|int, AllowedType>

A type-sensitive list of the collection's items

unserialize()

Restore $this from string representation.

public unserialize(string $data) : void
Parameters
$data : string

The string representation


        
On this page

Search results