<?php
/**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
/**
* @inheritDoc
*/
- public function offsetSet(mixed $offset, mixed $value): void
+ #[\ReturnTypeWillChange]
+ public function offsetSet($key, $value): void
{
- if (is_null($offset)) {
+ if (is_null($key)) {
$this->totalCount++;
}
- parent::offsetSet($offset, $value);
+ parent::offsetSet($key, $value);
}
/**
* @inheritDoc
*/
- public function offsetUnset(mixed $offset): void
+ #[\ReturnTypeWillChange]
+ public function offsetUnset($key): void
{
- if ($this->offsetExists($offset)) {
+ if ($this->offsetExists($key)) {
$this->totalCount--;
}
- parent::offsetUnset($offset);
+ parent::offsetUnset($key);
}
/**
return new static(array_reverse($this->getArrayCopy()), $this->getTotalCount());
}
+ /**
+ * Split the collection in smaller collections no bigger than the provided length
+ *
+ * @param int $length
+ * @return static[]
+ */
+ public function chunk(int $length): array
+ {
+ if ($length < 1) {
+ throw new \RangeException('BaseCollection->chunk(): Size parameter expected to be greater than 0');
+ }
+
+ return array_map(function ($array) {
+ return new static($array);
+ }, array_chunk($this->getArrayCopy(), $length));
+ }
+
+
/**
* @inheritDoc
*