DomainException. * @link https://php.net/manual/en/class.rangeexception.php */ class RangeException extends RuntimeException { } /** * Exception thrown when performing an invalid operation on an empty container, such as removing an element. * @link https://php.net/manual/en/class.underflowexception.php */ class UnderflowException extends RuntimeException { } /** * Exception thrown if a value does not match with a set of values. Typically * this happens when a function calls another function and expects the return * value to be of a certain type or value not including arithmetic or buffer * related errors. * @link https://php.net/manual/en/class.unexpectedvalueexception.php */ class UnexpectedValueException extends RuntimeException { } /** * The EmptyIterator class for an empty iterator. * @link https://secure.php.net/manual/en/class.emptyiterator.php */ class EmptyIterator implements Iterator { /** * Return the current element * @link https://php.net/manual/en/iterator.current.php * @return mixed Can return any type. */ #[TentativeType] public function current(): never { } /** * Move forward to next element * @link https://php.net/manual/en/iterator.next.php * @return void Any returned value is ignored. */ #[TentativeType] public function next(): void { } /** * Return the key of the current element * @link https://php.net/manual/en/iterator.key.php * @return mixed The key of the current element. */ #[TentativeType] public function key(): never { } /** * Checks if current position is valid * @link https://php.net/manual/en/iterator.valid.php * @return bool The return value will be casted to boolean and then evaluated. * Returns true on success or false on failure. */ #[TentativeType] #[LanguageLevelTypeAware(['8.2' => 'false'], default: 'bool')] public function valid() { } /** * Rewind the Iterator to the first element * @link https://php.net/manual/en/iterator.rewind.php * @return void Any returned value is ignored. */ #[TentativeType] public function rewind(): void { } } /** * Filtered iterator using the callback to determine which items are accepted or rejected. * @link https://secure.php.net/manual/en/class.callbackfilteriterator.php * @since 5.4 */ class CallbackFilterIterator extends FilterIterator { /** * Creates a filtered iterator using the callback to determine which items are accepted or rejected. * @param Iterator $iterator The iterator to be filtered. * @param callable $callback The callback, which should return TRUE to accept the current item or FALSE otherwise. * May be any valid callable value. * The callback should accept up to three arguments: the current item, the current key and the iterator, respectively. * function my_callback($current, $key, $iterator) * @link https://secure.php.net/manual/en/callbackfilteriterator.construct.php */ public function __construct(Iterator $iterator, callable $callback) { } /** * This method calls the callback with the current value, current key and the inner iterator. * The callback is expected to return TRUE if the current item is to be accepted, or FALSE otherwise. * @link https://secure.php.net/manual/en/callbackfilteriterator.accept.php * @return bool true if the current element is acceptable, otherwise false. */ #[TentativeType] public function accept(): bool { } } /** * (PHP 5 >= 5.4.0)
* RecursiveCallbackFilterIterator from a RecursiveIterator * @link https://secure.php.net/manual/en/class.recursivecallbackfilteriterator.php * @since 5.4 */ class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements RecursiveIterator { /** * Create a RecursiveCallbackFilterIterator from a RecursiveIterator * @param RecursiveIterator $iterator The recursive iterator to be filtered. * @param callable $callback The callback, which should return TRUE to accept the current item or FALSE otherwise. See Examples. * May be any valid callable value. * @link https://www.php.net/manual/en/recursivecallbackfilteriterator.construct.php */ public function __construct( RecursiveIterator $iterator, #[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback, ) { } /** * Check whether the inner iterator's current element has children * @link https://php.net/manual/en/recursiveiterator.haschildren.php * @return bool Returns TRUE if the current element has children, FALSE otherwise. */ #[TentativeType] public function hasChildren(): bool { } /** * Returns an iterator for the current entry. * @link https://secure.php.net/manual/en/recursivecallbackfilteriterator.haschildren.php * @return RecursiveCallbackFilterIterator containing the children. */ #[TentativeType] public function getChildren(): RecursiveCallbackFilterIterator { } } /** * Classes implementing RecursiveIterator can be used to iterate * over iterators recursively. * @link https://php.net/manual/en/class.recursiveiterator.php */ interface RecursiveIterator extends Iterator { /** * Returns if an iterator can be created for the current entry. * @link https://php.net/manual/en/recursiveiterator.haschildren.php * @return bool true if the current entry can be iterated over, otherwise returns false. */ #[TentativeType] public function hasChildren(): bool; /** * Returns an iterator for the current entry. * @link https://php.net/manual/en/recursiveiterator.getchildren.php * @return RecursiveIterator|null An iterator for the current entry. */ #[TentativeType] public function getChildren(): ?RecursiveIterator; } /** * Can be used to iterate through recursive iterators. * @link https://php.net/manual/en/class.recursiveiteratoriterator.php */ class RecursiveIteratorIterator implements OuterIterator { /** The default. Lists only leaves in iteration. */ public const LEAVES_ONLY = 0; /** Lists leaves and parents in iteration with parents coming first. */ public const SELF_FIRST = 1; /** Lists leaves and parents in iteration with leaves coming first. */ public const CHILD_FIRST = 2; /** Special flag: Ignore exceptions thrown in accessing children. */ public const CATCH_GET_CHILD = 16; /** * Construct a RecursiveIteratorIterator * @link https://php.net/manual/en/recursiveiteratoriterator.construct.php * @param Traversable $iterator * @param int $mode [optional] The operation mode. See class constants for details. * @param int $flags [optional] A bitmask of special flags. See class constants for details. * @since 5.1.3 */ public function __construct( Traversable $iterator, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = self::LEAVES_ONLY, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0, ) { } /** * Rewind the iterator to the first element of the top level inner iterator * @link https://php.net/manual/en/recursiveiteratoriterator.rewind.php * @return void */ #[TentativeType] public function rewind(): void { } /** * Check whether the current position is valid * @link https://php.net/manual/en/recursiveiteratoriterator.valid.php * @return bool true if the current position is valid, otherwise false */ #[TentativeType] public function valid(): bool { } /** * Access the current key * @link https://php.net/manual/en/recursiveiteratoriterator.key.php * @return mixed The key of the current element. */ #[TentativeType] public function key(): mixed { } /** * Access the current element value * @link https://php.net/manual/en/recursiveiteratoriterator.current.php * @return mixed The current elements value. */ #[TentativeType] public function current(): mixed { } /** * Move forward to the next element * @link https://php.net/manual/en/recursiveiteratoriterator.next.php * @return void */ #[TentativeType] public function next(): void { } /** * Get the current depth of the recursive iteration * @link https://php.net/manual/en/recursiveiteratoriterator.getdepth.php * @return int The current depth of the recursive iteration. */ #[TentativeType] public function getDepth(): int { } /** * The current active sub iterator * @link https://php.net/manual/en/recursiveiteratoriterator.getsubiterator.php * @param int $level [optional] * @return RecursiveIterator|null The current active sub iterator. */ #[TentativeType] public function getSubIterator(#[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $level): ?RecursiveIterator { } /** * Get inner iterator * @link https://php.net/manual/en/recursiveiteratoriterator.getinneriterator.php * @return RecursiveIterator The current active sub iterator. */ #[TentativeType] public function getInnerIterator(): RecursiveIterator { } /** * Begin Iteration * @link https://php.net/manual/en/recursiveiteratoriterator.beginiteration.php * @return void */ #[TentativeType] public function beginIteration(): void { } /** * End Iteration * @link https://php.net/manual/en/recursiveiteratoriterator.enditeration.php * @return void */ #[TentativeType] public function endIteration(): void { } /** * Has children * @link https://php.net/manual/en/recursiveiteratoriterator.callhaschildren.php * @return bool true if the element has children, otherwise false */ #[TentativeType] public function callHasChildren(): bool { } /** * Get children * @link https://php.net/manual/en/recursiveiteratoriterator.callgetchildren.php * @return RecursiveIterator|null A RecursiveIterator. */ #[TentativeType] public function callGetChildren(): ?RecursiveIterator { } /** * Begin children * @link https://php.net/manual/en/recursiveiteratoriterator.beginchildren.php * @return void */ #[TentativeType] public function beginChildren(): void { } /** * End children * @link https://php.net/manual/en/recursiveiteratoriterator.endchildren.php * @return void */ #[TentativeType] public function endChildren(): void { } /** * Next element * @link https://php.net/manual/en/recursiveiteratoriterator.nextelement.php * @return void */ #[TentativeType] public function nextElement(): void { } /** * Set max depth * @link https://php.net/manual/en/recursiveiteratoriterator.setmaxdepth.php * @param int $maxDepth [optional]

* The maximum allowed depth. Default -1 is used * for any depth. *

* @return void */ #[TentativeType] public function setMaxDepth(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $maxDepth = -1): void { } /** * Get max depth * @link https://php.net/manual/en/recursiveiteratoriterator.getmaxdepth.php * @return int|false The maximum accepted depth, or false if any depth is allowed. */ #[TentativeType] public function getMaxDepth(): int|false { } } /** * Classes implementing OuterIterator can be used to iterate * over iterators. * @link https://php.net/manual/en/class.outeriterator.php */ interface OuterIterator extends Iterator { /** * Returns the inner iterator for the current entry. * @link https://php.net/manual/en/outeriterator.getinneriterator.php * @return Iterator|null The inner iterator for the current entry. */ #[TentativeType] public function getInnerIterator(): ?Iterator; } /** * This iterator wrapper allows the conversion of anything that is * Traversable into an Iterator. * It is important to understand that most classes that do not implement * Iterators have reasons as most likely they do not allow the full * Iterator feature set. If so, techniques should be provided to prevent * misuse, otherwise expect exceptions or fatal errors. * @link https://php.net/manual/en/class.iteratoriterator.php */ class IteratorIterator implements OuterIterator { /** * Create an iterator from anything that is traversable * @link https://php.net/manual/en/iteratoriterator.construct.php * @param Traversable $iterator * @param string|null $class [optional] */ public function __construct( Traversable $iterator, #[PhpStormStubsElementAvailable(from: '8.0')] ?string $class = '', ) { } /** * Get the inner iterator * @link https://php.net/manual/en/iteratoriterator.getinneriterator.php * @return Iterator|null The inner iterator as passed to IteratorIterator::__construct. */ #[TentativeType] public function getInnerIterator(): ?Iterator { } /** * Rewind to the first element * @link https://php.net/manual/en/iteratoriterator.rewind.php * @return void */ #[TentativeType] public function rewind(): void { } /** * Checks if the iterator is valid * @link https://php.net/manual/en/iteratoriterator.valid.php * @return bool true if the iterator is valid, otherwise false */ #[TentativeType] public function valid(): bool { } /** * Get the key of the current element * @link https://php.net/manual/en/iteratoriterator.key.php * @return mixed The key of the current element. */ #[TentativeType] public function key(): mixed { } /** * Get the current value * @link https://php.net/manual/en/iteratoriterator.current.php * @return mixed The value of the current element. */ #[TentativeType] public function current(): mixed { } /** * Forward to the next element * @link https://php.net/manual/en/iteratoriterator.next.php * @return void */ #[TentativeType] public function next(): void { } } /** * This abstract iterator filters out unwanted values. This class should be extended to * implement custom iterator filters. The FilterIterator::accept * must be implemented in the subclass. * @link https://php.net/manual/en/class.filteriterator.php */ abstract class FilterIterator extends IteratorIterator { /** * Check whether the current element of the iterator is acceptable * @link https://php.net/manual/en/filteriterator.accept.php * @return bool true if the current element is acceptable, otherwise false. */ #[TentativeType] abstract public function accept(): bool; /** * Construct a filterIterator * @link https://php.net/manual/en/filteriterator.construct.php * @param Iterator $iterator */ public function __construct(Iterator $iterator) { } /** * Rewind the iterator * @link https://php.net/manual/en/filteriterator.rewind.php * @return void */ #[TentativeType] public function rewind(): void { } /** * Check whether the current element is valid * @link https://php.net/manual/en/filteriterator.valid.php * @return bool true if the current element is valid, otherwise false */ public function valid(): bool { } /** * Get the current key * @link https://php.net/manual/en/filteriterator.key.php * @return mixed The key of the current element. */ public function key(): mixed { } /** * Get the current element value * @link https://php.net/manual/en/filteriterator.current.php * @return mixed The current element value. */ public function current(): mixed { } /** * Move the iterator forward * @link https://php.net/manual/en/filteriterator.next.php * @return void */ #[TentativeType] public function next(): void { } /** * Get the inner iterator * @link https://php.net/manual/en/filteriterator.getinneriterator.php * @return Iterator The inner iterator. */ public function getInnerIterator(): Iterator { } } /** * This abstract iterator filters out unwanted values for a RecursiveIterator. * This class should be extended to implement custom filters. * The RecursiveFilterIterator::accept must be implemented in the subclass. * @link https://php.net/manual/en/class.recursivefilteriterator.php */ abstract class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator { /** * Create a RecursiveFilterIterator from a RecursiveIterator * @link https://php.net/manual/en/recursivefilteriterator.construct.php * @param RecursiveIterator $iterator */ public function __construct(RecursiveIterator $iterator) { } /** * Check whether the inner iterator's current element has children * @link https://php.net/manual/en/recursivefilteriterator.haschildren.php * @return bool true if the inner iterator has children, otherwise false */ #[TentativeType] public function hasChildren(): bool { } /** * Return the inner iterator's children contained in a RecursiveFilterIterator * @link https://php.net/manual/en/recursivefilteriterator.getchildren.php * @return RecursiveFilterIterator|null containing the inner iterator's children. */ #[TentativeType] public function getChildren(): ?RecursiveFilterIterator { } } /** * This extended FilterIterator allows a recursive iteration using RecursiveIteratorIterator that only shows those elements which have children. * @link https://php.net/manual/en/class.parentiterator.php */ class ParentIterator extends RecursiveFilterIterator { /** * Determines acceptability * @link https://php.net/manual/en/parentiterator.accept.php * @return bool true if the current element is acceptable, otherwise false. */ #[TentativeType] public function accept(): bool { } /** * Constructs a ParentIterator * @link https://php.net/manual/en/parentiterator.construct.php * @param RecursiveIterator $iterator */ public function __construct(RecursiveIterator $iterator) { } /** * Check whether the inner iterator's current element has children * @link https://php.net/manual/en/recursivefilteriterator.haschildren.php * @return bool true if the inner iterator has children, otherwise false */ public function hasChildren() { } /** * Return the inner iterator's children contained in a RecursiveFilterIterator * @link https://php.net/manual/en/recursivefilteriterator.getchildren.php * @return ParentIterator containing the inner iterator's children. */ public function getChildren() { } } /** * The Seekable iterator. * @link https://php.net/manual/en/class.seekableiterator.php */ interface SeekableIterator extends Iterator { /** * Seeks to a position * @link https://php.net/manual/en/seekableiterator.seek.php * @param int $offset

* The position to seek to. *

* @return void */ #[TentativeType] public function seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset): void; } /** * The LimitIterator class allows iteration over * a limited subset of items in an Iterator. * @link https://php.net/manual/en/class.limititerator.php */ class LimitIterator extends IteratorIterator { /** * Construct a LimitIterator * @link https://php.net/manual/en/limititerator.construct.php * @param Iterator $iterator The iterator to limit. * @param int $offset [optional] The offset to start at. Must be zero or greater. * @param int $limit [optional] The number of items to iterate. Must be -1 or greater. -1, the default, means no limit. */ public function __construct( Iterator $iterator, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset = 0, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $limit = -1, ) { } /** * Rewind the iterator to the specified starting offset * @link https://php.net/manual/en/limititerator.rewind.php * @return void */ #[TentativeType] public function rewind(): void { } /** * Check whether the current element is valid * @link https://php.net/manual/en/limititerator.valid.php * @return bool true on success or false on failure. */ #[TentativeType] public function valid(): bool { } /** * Get current key * @link https://php.net/manual/en/limititerator.key.php * @return mixed The key of the current element. */ public function key(): mixed { } /** * Get current element * @link https://php.net/manual/en/limititerator.current.php * @return mixed the current element or null if there is none. */ public function current(): mixed { } /** * Move the iterator forward * @link https://php.net/manual/en/limititerator.next.php * @return void */ #[TentativeType] public function next(): void { } /** * Seek to the given position * @link https://php.net/manual/en/limititerator.seek.php * @param int $offset

* The position to seek to. *

* @return int the offset position after seeking. */ #[TentativeType] public function seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset): int { } /** * Return the current position * @link https://php.net/manual/en/limititerator.getposition.php * @return int The current position. */ #[TentativeType] public function getPosition(): int { } /** * Get inner iterator * @link https://php.net/manual/en/limititerator.getinneriterator.php * @return Iterator The inner iterator passed to LimitIterator::__construct. */ public function getInnerIterator(): Iterator { } } /** * This object supports cached iteration over another iterator. * @link https://php.net/manual/en/class.cachingiterator.php */ class CachingIterator extends IteratorIterator implements ArrayAccess, Countable, Stringable { /** * String conversion flag (mutually exclusive): Uses the current element for the iterator's string conversion. * This converts the current element to a string only once, regardless of whether it is needed or not. */ public const CALL_TOSTRING = 1; /** String conversion flag (mutually exclusive). Uses the current key for the iterator's string conversion. */ public const TOSTRING_USE_KEY = 2; /** * String conversion flag (mutually exclusive). Uses the current element for the iterator's string conversion. * This converts the current element to a string only when (and every time) it is needed. */ public const TOSTRING_USE_CURRENT = 4; /** * String conversion flag (mutually exclusive). Forwards the string conversion to the inner iterator. * This converts the inner iterator to a string only once, regardless of whether it is needed or not. */ public const TOSTRING_USE_INNER = 8; /** Ignore exceptions thrown in accessing children. Only used with {@see RecursiveCachingIterator}. */ public const CATCH_GET_CHILD = 16; /** Cache all read data. This is needed to use {@see CachingIterator::getCache}, and ArrayAccess and Countable methods. */ public const FULL_CACHE = 256; /** * Constructs a new CachingIterator. * @link https://php.net/manual/en/cachingiterator.construct.php * @param Iterator $iterator The iterator to cache. * @param int $flags [optional] A bitmask of flags. See CachingIterator class constants for details. */ public function __construct( Iterator $iterator, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = self::CALL_TOSTRING, ) { } /** * Rewind the iterator * @link https://php.net/manual/en/cachingiterator.rewind.php * @return void */ #[TentativeType] public function rewind(): void { } /** * Check whether the current element is valid * @link https://php.net/manual/en/cachingiterator.valid.php * @return bool true on success or false on failure. */ #[TentativeType] public function valid(): bool { } /** * Return the key for the current element * @link https://php.net/manual/en/cachingiterator.key.php * @return mixed The key of the current element. */ public function key(): mixed { } /** * Return the current element * @link https://php.net/manual/en/cachingiterator.current.php * @return mixed */ public function current(): mixed { } /** * Move the iterator forward * @link https://php.net/manual/en/cachingiterator.next.php * @return void */ #[TentativeType] public function next(): void { } /** * Check whether the inner iterator has a valid next element * @link https://php.net/manual/en/cachingiterator.hasnext.php * @return bool true on success or false on failure. */ #[TentativeType] public function hasNext(): bool { } /** * Return the string representation of the current iteration based on the flag being used. * @link https://php.net/manual/en/cachingiterator.tostring.php * @return string The string representation of the current iteration based on the flag being used. */ #[TentativeType] public function __toString(): string { } /** * Returns the inner iterator * @link https://php.net/manual/en/cachingiterator.getinneriterator.php * @return Iterator an object implementing the Iterator interface. */ public function getInnerIterator(): Iterator { } /** * Get flags used * @link https://php.net/manual/en/cachingiterator.getflags.php * @return int Bitmask of the flags */ #[TentativeType] public function getFlags(): int { } /** * The setFlags purpose * @link https://php.net/manual/en/cachingiterator.setflags.php * @param int $flags Bitmask of the flags to set. * @return void */ #[TentativeType] public function setFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags): void { } /** * Internal cache array index to retrieve. * @link https://php.net/manual/en/cachingiterator.offsetget.php * @param string $key The index of the element to retrieve. * @return mixed * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. */ #[TentativeType] public function offsetGet($key): mixed { } /** * Set an element on the internal cache array. * @link https://php.net/manual/en/cachingiterator.offsetset.php * @param string $key The index of the element to be set. * @param string $value The new value for the index. * @return void * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. */ #[TentativeType] public function offsetSet( $key, #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value, ): void { } /** * Remove an element from the internal cache array. * @link https://php.net/manual/en/cachingiterator.offsetunset.php * @param string $key The index of the element to be unset. * @return void * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. */ #[TentativeType] public function offsetUnset($key): void { } /** * Return whether an element at the index exists on the internal cache array. * @link https://php.net/manual/en/cachingiterator.offsetexists.php * @param string $key The index being checked. * @return bool true if an entry referenced by the offset exists, false otherwise. * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. */ #[TentativeType] public function offsetExists($key): bool { } /** * Retrieve the contents of the cache * @link https://php.net/manual/en/cachingiterator.getcache.php * @return array An array containing the cache items. * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. */ #[TentativeType] public function getCache(): array { } /** * The number of elements in the iterator * @link https://php.net/manual/en/cachingiterator.count.php * @return int The count of the elements iterated over. * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. * @since 5.2.2 */ #[TentativeType] public function count(): int { } } /** * ... * @link https://php.net/manual/en/class.recursivecachingiterator.php */ class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator { /** * Constructs a new RecursiveCachingIterator. * @link https://php.net/manual/en/recursivecachingiterator.construct.php * @param Iterator $iterator The iterator to cache. * @param int $flags [optional] A bitmask of flags. See CachingIterator class constants for details. */ public function __construct( Iterator $iterator, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = self::CALL_TOSTRING, ) { } /** * Check whether the current element of the inner iterator has children * @link https://php.net/manual/en/recursivecachingiterator.haschildren.php * @return bool true if the inner iterator has children, otherwise false */ #[TentativeType] public function hasChildren(): bool { } /** * Return the inner iterator's children as a RecursiveCachingIterator * @link https://php.net/manual/en/recursivecachingiterator.getchildren.php * @return RecursiveCachingIterator|null The inner iterator's children, as a RecursiveCachingIterator. */ #[TentativeType] public function getChildren(): ?RecursiveCachingIterator { } } /** * This iterator cannot be rewinded. * @link https://php.net/manual/en/class.norewinditerator.php */ class NoRewindIterator extends IteratorIterator { /** * Construct a NoRewindIterator * @link https://php.net/manual/en/norewinditerator.construct.php * @param Iterator $iterator */ public function __construct(Iterator $iterator) { } /** * Prevents the rewind operation on the inner iterator. * @link https://php.net/manual/en/norewinditerator.rewind.php * @return void */ #[TentativeType] public function rewind(): void { } /** * Validates the iterator * @link https://php.net/manual/en/norewinditerator.valid.php * @return bool true on success or false on failure. */ #[TentativeType] public function valid(): bool { } /** * Get the current key * @link https://php.net/manual/en/norewinditerator.key.php * @return mixed The key of the current element. */ #[TentativeType] public function key(): mixed { } /** * Get the current value * @link https://php.net/manual/en/norewinditerator.current.php * @return mixed The current value. */ #[TentativeType] public function current(): mixed { } /** * Forward to the next element * @link https://php.net/manual/en/norewinditerator.next.php * @return void */ #[TentativeType] public function next(): void { } /** * Get the inner iterator * @link https://php.net/manual/en/norewinditerator.getinneriterator.php * @return Iterator The inner iterator, as passed to NoRewindIterator::__construct. */ public function getInnerIterator(): Iterator { } } /** * An Iterator that iterates over several iterators one after the other. * @link https://php.net/manual/en/class.appenditerator.php */ class AppendIterator extends IteratorIterator { /** * Constructs an AppendIterator * @link https://php.net/manual/en/appenditerator.construct.php */ public function __construct() { } /** * Appends an iterator * @link https://php.net/manual/en/appenditerator.append.php * @param Iterator $iterator

* The iterator to append. *

* @return void */ #[TentativeType] public function append(Iterator $iterator): void { } /** * Rewinds the Iterator * @link https://php.net/manual/en/appenditerator.rewind.php * @return void */ #[TentativeType] public function rewind(): void { } /** * Checks validity of the current element * @link https://php.net/manual/en/appenditerator.valid.php * @return bool true on success or false on failure. */ #[TentativeType] public function valid(): bool { } /** * Gets the current key * @link https://php.net/manual/en/appenditerator.key.php * @return mixed The key of the current element. */ public function key(): mixed { } /** * Gets the current value * @link https://php.net/manual/en/appenditerator.current.php * @return mixed The current value if it is valid or null otherwise. */ #[TentativeType] public function current(): mixed { } /** * Moves to the next element * @link https://php.net/manual/en/appenditerator.next.php * @return void */ #[TentativeType] public function next(): void { } /** * Gets an inner iterator * @link https://php.net/manual/en/appenditerator.getinneriterator.php * @return Iterator the current inner Iterator. */ public function getInnerIterator(): Iterator { } /** * Gets an index of iterators * @link https://php.net/manual/en/appenditerator.getiteratorindex.php * @return int|null The index of iterators. */ #[TentativeType] public function getIteratorIndex(): ?int { } /** * The getArrayIterator method * @link https://php.net/manual/en/appenditerator.getarrayiterator.php * @return ArrayIterator containing the appended iterators. */ #[TentativeType] public function getArrayIterator(): ArrayIterator { } } /** * The InfiniteIterator allows one to * infinitely iterate over an iterator without having to manually * rewind the iterator upon reaching its end. * @link https://php.net/manual/en/class.infiniteiterator.php */ class InfiniteIterator extends IteratorIterator { /** * Constructs an InfiniteIterator * @link https://php.net/manual/en/infiniteiterator.construct.php * @param Iterator $iterator */ public function __construct(Iterator $iterator) { } /** * Moves the inner Iterator forward or rewinds it * @link https://php.net/manual/en/infiniteiterator.next.php * @return void */ #[TentativeType] public function next(): void { } } /** * This iterator can be used to filter another iterator based on a regular expression. * @link https://php.net/manual/en/class.regexiterator.php */ class RegexIterator extends FilterIterator { /** Return all matches for the current entry @see preg_match_all */ public const ALL_MATCHES = 2; /** Return the first match for the current entry @see preg_match */ public const GET_MATCH = 1; /** Only execute match (filter) for the current entry @see preg_match */ public const MATCH = 0; /** Replace the current entry (Not fully implemented yet) @see preg_replace */ public const REPLACE = 4; /** Returns the split values for the current entry @see preg_split */ public const SPLIT = 3; /** Special flag: Match the entry key instead of the entry value. */ public const USE_KEY = 1; public const INVERT_MATCH = 2; #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] public $replacement; /** * Create a new RegexIterator * @link https://php.net/manual/en/regexiterator.construct.php * @param Iterator $iterator The iterator to apply this regex filter to. * @param string $pattern The regular expression to match. * @param int $mode [optional] Operation mode, see RegexIterator::setMode() for a list of modes. * @param int $flags [optional] Special flags, see RegexIterator::setFlags() for a list of available flags. * @param int $pregFlags [optional] The regular expression flags. These flags depend on the operation mode parameter */ public function __construct( Iterator $iterator, #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $pattern, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = self::MATCH, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $pregFlags = 0, ) { } /** * Get accept status * @link https://php.net/manual/en/regexiterator.accept.php * @return bool true if a match, false otherwise. */ #[TentativeType] public function accept(): bool { } /** * Returns operation mode. * @link https://php.net/manual/en/regexiterator.getmode.php * @return int the operation mode. */ #[TentativeType] public function getMode(): int { } /** * Sets the operation mode. * @link https://php.net/manual/en/regexiterator.setmode.php * @param int $mode

* The operation mode. *

*

* The available modes are listed below. The actual * meanings of these modes are described in the * predefined constants. * * RegexIterator modes * * * * * * * * * * * * * * * * * * * * * * * * *
valueconstant
0 * RegexIterator::MATCH *
1 * RegexIterator::GET_MATCH *
2 * RegexIterator::ALL_MATCHES *
3 * RegexIterator::SPLIT *
4 * RegexIterator::REPLACE *
*

* @return void */ #[TentativeType] public function setMode(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode): void { } /** * Get flags * @link https://php.net/manual/en/regexiterator.getflags.php * @return int the set flags. */ #[TentativeType] public function getFlags(): int { } /** * Sets the flags. * @link https://php.net/manual/en/regexiterator.setflags.php * @param int $flags

* The flags to set, a bitmask of class constants. *

*

* The available flags are listed below. The actual * meanings of these flags are described in the * predefined constants. * * RegexIterator flags * * * * * * * * *
valueconstant
1 * RegexIterator::USE_KEY *
*

* @return void */ #[TentativeType] public function setFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags): void { } /** * Returns current regular expression * @link https://secure.php.net/manual/en/regexiterator.getregex.php * @return string * @since 5.4 */ #[TentativeType] public function getRegex(): string { } /** * Returns the regular expression flags. * @link https://php.net/manual/en/regexiterator.getpregflags.php * @return int a bitmask of the regular expression flags. */ #[TentativeType] public function getPregFlags(): int { } /** * Sets the regular expression flags. * @link https://php.net/manual/en/regexiterator.setpregflags.php * @param int $pregFlags

* The regular expression flags. See RegexIterator::__construct * for an overview of available flags. *

* @return void */ #[TentativeType] public function setPregFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $pregFlags): void { } } /** * This recursive iterator can filter another recursive iterator via a regular expression. * @link https://php.net/manual/en/class.recursiveregexiterator.php */ class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator { /** * Creates a new RecursiveRegexIterator. * @link https://php.net/manual/en/recursiveregexiterator.construct.php * @param RecursiveIterator $iterator The iterator to apply this regex filter to. * @param string $pattern The regular expression to match. * @param int $mode [optional] Operation mode, see RegexIterator::setMode() for a list of modes. * @param int $flags [optional] Special flags, see RegexIterator::setFlags() for a list of available flags. * @param int $pregFlags [optional] The regular expression flags. These flags depend on the operation mode parameter */ public function __construct( RecursiveIterator $iterator, #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $pattern, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = self::MATCH, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $pregFlags = 0, ) { } /** * Returns whether an iterator can be obtained for the current entry. * @link https://php.net/manual/en/recursiveregexiterator.haschildren.php * @return bool true if an iterator can be obtained for the current entry, otherwise returns false. */ #[TentativeType] public function hasChildren(): bool { } /** * Returns an iterator for the current entry. * @link https://php.net/manual/en/recursiveregexiterator.getchildren.php * @return RecursiveRegexIterator An iterator for the current entry, if it can be iterated over by the inner iterator. */ #[TentativeType] public function getChildren(): RecursiveRegexIterator { } } /** * Allows iterating over a RecursiveIterator to generate an ASCII graphic tree. * @link https://php.net/manual/en/class.recursivetreeiterator.php */ class RecursiveTreeIterator extends RecursiveIteratorIterator { public const BYPASS_CURRENT = 4; public const BYPASS_KEY = 8; public const PREFIX_LEFT = 0; public const PREFIX_MID_HAS_NEXT = 1; public const PREFIX_MID_LAST = 2; public const PREFIX_END_HAS_NEXT = 3; public const PREFIX_END_LAST = 4; public const PREFIX_RIGHT = 5; /** * Construct a RecursiveTreeIterator * @link https://php.net/manual/en/recursivetreeiterator.construct.php * @param RecursiveIterator|IteratorAggregate $iterator * @param int $flags [optional] Flags to control the behavior of the RecursiveTreeIterator object. * @param int $cachingIteratorFlags [optional] Flags to affect the behavior of the {@see RecursiveCachingIterator} used internally. * @param int $mode [optional] Flags to affect the behavior of the {@see RecursiveIteratorIterator} used internally. */ public function __construct( $iterator, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = self::BYPASS_KEY, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $cachingIteratorFlags = CachingIterator::CATCH_GET_CHILD, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = self::SELF_FIRST, ) { } /** * Rewind iterator * @link https://php.net/manual/en/recursivetreeiterator.rewind.php * @return void */ public function rewind(): void { } /** * Check validity * @link https://php.net/manual/en/recursivetreeiterator.valid.php * @return bool true if the current position is valid, otherwise false */ public function valid(): bool { } /** * Get the key of the current element * @link https://php.net/manual/en/recursivetreeiterator.key.php * @return string the current key prefixed and postfixed. */ #[TentativeType] public function key(): mixed { } /** * Get current element * @link https://php.net/manual/en/recursivetreeiterator.current.php * @return string the current element prefixed and postfixed. */ #[TentativeType] public function current(): mixed { } /** * Move to next element * @link https://php.net/manual/en/recursivetreeiterator.next.php * @return void */ public function next(): void { } /** * Begin iteration * @link https://php.net/manual/en/recursivetreeiterator.beginiteration.php * @return RecursiveIterator A RecursiveIterator. */ public function beginIteration() { } /** * End iteration * @link https://php.net/manual/en/recursivetreeiterator.enditeration.php * @return void */ public function endIteration() { } /** * Has children * @link https://php.net/manual/en/recursivetreeiterator.callhaschildren.php * @return bool true if there are children, otherwise false */ public function callHasChildren() { } /** * Get children * @link https://php.net/manual/en/recursivetreeiterator.callgetchildren.php * @return RecursiveIterator A RecursiveIterator. */ public function callGetChildren() { } /** * Begin children * @link https://php.net/manual/en/recursivetreeiterator.beginchildren.php * @return void */ public function beginChildren() { } /** * End children * @link https://php.net/manual/en/recursivetreeiterator.endchildren.php * @return void */ public function endChildren() { } /** * Next element * @link https://php.net/manual/en/recursivetreeiterator.nextelement.php * @return void */ public function nextElement() { } /** * Get the prefix * @link https://php.net/manual/en/recursivetreeiterator.getprefix.php * @return string the string to place in front of current element */ #[TentativeType] public function getPrefix(): string { } /** * @param string $postfix */ #[TentativeType] public function setPostfix(#[PhpStormStubsElementAvailable(from: '7.3')] string $postfix): void { } /** * Set a part of the prefix * @link https://php.net/manual/en/recursivetreeiterator.setprefixpart.php * @param int $part

* One of the RecursiveTreeIterator::PREFIX_* constants. *

* @param string $value

* The value to assign to the part of the prefix specified in part. *

* @return void */ #[TentativeType] public function setPrefixPart( #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $part, #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $value, ): void { } /** * Get current entry * @link https://php.net/manual/en/recursivetreeiterator.getentry.php * @return string the part of the tree built for the current element. */ #[TentativeType] public function getEntry(): string { } /** * Get the postfix * @link https://php.net/manual/en/recursivetreeiterator.getpostfix.php * @return string to place after the current element. */ #[TentativeType] public function getPostfix(): string { } } /** * This class allows objects to work as arrays. * @link https://php.net/manual/en/class.arrayobject.php */ class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable { /** Properties of the object have their normal functionality when accessed as list (var_dump, foreach, etc.). */ public const STD_PROP_LIST = 1; /** Entries can be accessed as properties (read and write). */ public const ARRAY_AS_PROPS = 2; /** * Construct a new array object * @link https://php.net/manual/en/arrayobject.construct.php * @param array|object $array The input parameter accepts an array or an Object. * @param int $flags Flags to control the behaviour of the ArrayObject object. * @param string $iteratorClass Specify the class that will be used for iteration of the ArrayObject object. ArrayIterator is the default class used. */ public function __construct( #[LanguageLevelTypeAware(['8.0' => 'object|array'], default: '')] $array = [], #[PhpStormStubsElementAvailable(from: '7.0'), LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0, #[PhpStormStubsElementAvailable(from: '7.0'), LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $iteratorClass = "ArrayIterator", ) { } /** * Returns whether the requested index exists * @link https://php.net/manual/en/arrayobject.offsetexists.php * @param int|string $key

* The index being checked. *

* @return bool true if the requested index exists, otherwise false */ #[TentativeType] public function offsetExists(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): bool { } /** * Returns the value at the specified index * @link https://php.net/manual/en/arrayobject.offsetget.php * @param int|string $key

* The index with the value. *

* @return mixed|false The value at the specified index or false. */ #[TentativeType] public function offsetGet(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): mixed { } /** * Sets the value at the specified index to newval * @link https://php.net/manual/en/arrayobject.offsetset.php * @param int|string $key

* The index being set. *

* @param mixed $value

* The new value for the index. *

* @return void */ #[TentativeType] public function offsetSet( #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key, #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value, ): void { } /** * Unsets the value at the specified index * @link https://php.net/manual/en/arrayobject.offsetunset.php * @param int|string $key

* The index being unset. *

* @return void */ #[TentativeType] public function offsetUnset(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): void { } /** * Appends the value * @link https://php.net/manual/en/arrayobject.append.php * @param mixed $value

* The value being appended. *

* @return void */ #[TentativeType] public function append(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): void { } /** * Creates a copy of the ArrayObject. * @link https://php.net/manual/en/arrayobject.getarraycopy.php * @return array a copy of the array. When the ArrayObject refers to an object * an array of the public properties of that object will be returned. */ #[TentativeType] public function getArrayCopy(): array { } /** * Get the number of public properties in the ArrayObject * When the ArrayObject is constructed from an array all properties are public. * @link https://php.net/manual/en/arrayobject.count.php * @return int The number of public properties in the ArrayObject. */ #[TentativeType] public function count(): int { } /** * Gets the behavior flags. * @link https://php.net/manual/en/arrayobject.getflags.php * @return int the behavior flags of the ArrayObject. */ #[TentativeType] public function getFlags(): int { } /** * Sets the behavior flags. * @link https://php.net/manual/en/arrayobject.setflags.php * @param int $flags

* The new ArrayObject behavior. * It takes on either a bitmask, or named constants. Using named * constants is strongly encouraged to ensure compatibility for future * versions. *

*

* The available behavior flags are listed below. The actual * meanings of these flags are described in the * predefined constants. * * ArrayObject behavior flags * * * * * * * * * * * * *
valueconstant
1 * ArrayObject::STD_PROP_LIST *
2 * ArrayObject::ARRAY_AS_PROPS *
*

* @return void */ #[TentativeType] public function setFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags): void { } /** * Sort the entries by value * @link https://php.net/manual/en/arrayobject.asort.php * @param int $flags [optional] * @return bool */ #[TentativeType] public function asort(#[PhpStormStubsElementAvailable(from: '8.0')] int $flags = SORT_REGULAR): bool { } /** * Sort the entries by key * @link https://php.net/manual/en/arrayobject.ksort.php * @param int $flags [optional] * @return bool */ #[TentativeType] public function ksort(#[PhpStormStubsElementAvailable(from: '8.0')] int $flags = SORT_REGULAR): bool { } /** * Sort the entries with a user-defined comparison function and maintain key association * @link https://php.net/manual/en/arrayobject.uasort.php * @param callable $callback

* Function cmp_function should accept two * parameters which will be filled by pairs of entries. * The comparison function must return an integer less than, equal * to, or greater than zero if the first argument is considered to * be respectively less than, equal to, or greater than the * second. *

* @return bool */ #[TentativeType] public function uasort(#[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback): bool { } /** * Sort the entries by keys using a user-defined comparison function * @link https://php.net/manual/en/arrayobject.uksort.php * @param callable $callback

* The callback comparison function. *

*

* Function cmp_function should accept two * parameters which will be filled by pairs of entry keys. * The comparison function must return an integer less than, equal * to, or greater than zero if the first argument is considered to * be respectively less than, equal to, or greater than the * second. *

* @return bool */ #[TentativeType] public function uksort(#[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback): bool { } /** * Sort entries using a "natural order" algorithm * @link https://php.net/manual/en/arrayobject.natsort.php * @return bool */ #[TentativeType] public function natsort(): bool { } /** * Sort an array using a case insensitive "natural order" algorithm * @link https://php.net/manual/en/arrayobject.natcasesort.php * @return bool */ #[TentativeType] public function natcasesort(): bool { } /** * Unserialize an ArrayObject * @link https://php.net/manual/en/arrayobject.unserialize.php * @param string $data

* The serialized ArrayObject. *

* @return void */ #[TentativeType] public function unserialize(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data): void { } /** * Serialize an ArrayObject * @link https://php.net/manual/en/arrayobject.serialize.php * @return string The serialized representation of the ArrayObject. */ #[TentativeType] public function serialize(): string { } /** * @return array * @since 7.4 */ #[TentativeType] public function __debugInfo(): array { } /** * @return array * @since 7.4 */ #[TentativeType] public function __serialize(): array { } /** * @param array $data * @since 7.4 */ #[TentativeType] public function __unserialize(array $data): void { } /** * Create a new iterator from an ArrayObject instance * @link https://php.net/manual/en/arrayobject.getiterator.php * @return ArrayIterator An iterator from an ArrayObject. */ #[TentativeType] public function getIterator(): Iterator { } /** * Exchange the array for another one. * @link https://php.net/manual/en/arrayobject.exchangearray.php * @param mixed $array

* The new array or object to exchange with the current array. *

* @return array the old array. */ #[TentativeType] public function exchangeArray(#[LanguageLevelTypeAware(['8.0' => 'object|array'], default: '')] $array): array { } /** * Sets the iterator classname for the ArrayObject. * @link https://php.net/manual/en/arrayobject.setiteratorclass.php * @param string $iteratorClass

* The classname of the array iterator to use when iterating over this object. *

* @return void */ #[TentativeType] public function setIteratorClass(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $iteratorClass): void { } /** * Gets the iterator classname for the ArrayObject. * @link https://php.net/manual/en/arrayobject.getiteratorclass.php * @return string the iterator class name that is used to iterate over this object. */ #[TentativeType] public function getIteratorClass(): string { } } /** * This iterator allows to unset and modify values and keys while iterating * over Arrays and Objects. * @link https://php.net/manual/en/class.arrayiterator.php */ class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Countable { public const STD_PROP_LIST = 1; public const ARRAY_AS_PROPS = 2; /** * Construct an ArrayIterator * @link https://php.net/manual/en/arrayiterator.construct.php * @param array $array The array or object to be iterated on. * @param int $flags Flags to control the behaviour of the ArrayObject object. * @see ArrayObject::setFlags() */ public function __construct( #[LanguageLevelTypeAware(['8.0' => 'object|array'], default: '')] $array = [], #[PhpStormStubsElementAvailable(from: '7.0'), LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0, #[PhpStormStubsElementAvailable(from: '7.0', to: '7.1')] $iterator_class = null, ) { } /** * Check if offset exists * @link https://php.net/manual/en/arrayiterator.offsetexists.php * @param string $key

* The offset being checked. *

* @return bool true if the offset exists, otherwise false */ #[TentativeType] public function offsetExists(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): bool { } /** * Get value for an offset * @link https://php.net/manual/en/arrayiterator.offsetget.php * @param string $key

* The offset to get the value from. *

* @return mixed The value at offset index. */ #[TentativeType] public function offsetGet(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): mixed { } /** * Set value for an offset * @link https://php.net/manual/en/arrayiterator.offsetset.php * @param string $key

* The index to set for. *

* @param string $value

* The new value to store at the index. *

* @return void */ #[TentativeType] public function offsetSet( #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key, #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value, ): void { } /** * Unset value for an offset * @link https://php.net/manual/en/arrayiterator.offsetunset.php * @param string $key

* The offset to unset. *

* @return void */ #[TentativeType] public function offsetUnset(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): void { } /** * Append an element * @link https://php.net/manual/en/arrayiterator.append.php * @param mixed $value

* The value to append. *

* @return void */ #[TentativeType] public function append(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): void { } /** * Get array copy * @link https://php.net/manual/en/arrayiterator.getarraycopy.php * @return array A copy of the array, or array of public properties * if ArrayIterator refers to an object. */ #[TentativeType] public function getArrayCopy(): array { } /** * Count elements * @link https://php.net/manual/en/arrayiterator.count.php * @return int<0,max> The number of elements or public properties in the associated * array or object, respectively. */ #[TentativeType] public function count(): int { } /** * Get flags * @link https://php.net/manual/en/arrayiterator.getflags.php * @return int The current flags. */ #[TentativeType] public function getFlags(): int { } /** * Set behaviour flags * @link https://php.net/manual/en/arrayiterator.setflags.php * @param string $flags

* A bitmask as follows: * 0 = Properties of the object have their normal functionality * when accessed as list (var_dump, foreach, etc.). * 1 = Array indices can be accessed as properties in read/write. *

* @return void */ #[TentativeType] public function setFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags): void { } /** * Sort array by values * @link https://php.net/manual/en/arrayiterator.asort.php * @param int $flags [optional] * @return bool */ #[TentativeType] public function asort(#[PhpStormStubsElementAvailable(from: '8.0')] int $flags = SORT_REGULAR): bool { } /** * Sort array by keys * @link https://php.net/manual/en/arrayiterator.ksort.php * @param int $flags [optional] * @return bool */ #[TentativeType] public function ksort(#[PhpStormStubsElementAvailable(from: '8.0')] int $flags = SORT_REGULAR): bool { } /** * User defined sort * @link https://php.net/manual/en/arrayiterator.uasort.php * @param callable $callback

* The compare function used for the sort. *

* @return void */ #[TentativeType] public function uasort(#[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback): bool { } /** * User defined sort * @link https://php.net/manual/en/arrayiterator.uksort.php * @param callable $callback

* The compare function used for the sort. *

* @return void */ #[TentativeType] public function uksort(#[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback): bool { } /** * Sort an array naturally * @link https://php.net/manual/en/arrayiterator.natsort.php * @return bool */ #[TentativeType] public function natsort(): bool { } /** * Sort an array naturally, case insensitive * @link https://php.net/manual/en/arrayiterator.natcasesort.php * @return bool */ #[TentativeType] public function natcasesort(): bool { } /** * Unserialize * @link https://php.net/manual/en/arrayiterator.unserialize.php * @param string $data

* The serialized ArrayIterator object to be unserialized. *

* @return void */ #[TentativeType] public function unserialize(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data): void { } /** * Serialize * @link https://php.net/manual/en/arrayiterator.serialize.php * @return string The serialized ArrayIterator. */ #[TentativeType] public function serialize(): string { } /** * Rewind array back to the start * @link https://php.net/manual/en/arrayiterator.rewind.php * @return void */ #[TentativeType] public function rewind(): void { } /** * Return current array entry * @link https://php.net/manual/en/arrayiterator.current.php * @return mixed The current array entry. */ #[TentativeType] public function current(): mixed { } /** * Return current array key * @link https://php.net/manual/en/arrayiterator.key.php * @return string|int|null The key of the current element. */ #[TentativeType] public function key(): string|int|null { } /** * Move to next entry * @link https://php.net/manual/en/arrayiterator.next.php * @return void */ #[TentativeType] public function next(): void { } /** * Check whether array contains more entries * @link https://php.net/manual/en/arrayiterator.valid.php * @return bool */ #[TentativeType] public function valid(): bool { } /** * Seek to position * @link https://php.net/manual/en/arrayiterator.seek.php * @param int $offset

* The position to seek to. *

* @return void */ #[TentativeType] public function seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset): void { } /** * @return array * @since 7.4 */ #[TentativeType] public function __debugInfo(): array { } /** * @return array * @since 7.4 */ #[TentativeType] public function __serialize(): array { } /** * @param array $data * @since 7.4 */ #[TentativeType] public function __unserialize(array $data): void { } } /** * This iterator allows to unset and modify values and keys while iterating over Arrays and Objects * in the same way as the ArrayIterator. Additionally it is possible to iterate * over the current iterator entry. * @link https://php.net/manual/en/class.recursivearrayiterator.php */ class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator { public const CHILD_ARRAYS_ONLY = 4; /** * Returns whether current entry is an array or an object. * @link https://php.net/manual/en/recursivearrayiterator.haschildren.php * @return bool true if the current entry is an array or an object, * otherwise false is returned. */ #[TentativeType] public function hasChildren(): bool { } /** * Returns an iterator for the current entry if it is an array or an object. * @link https://php.net/manual/en/recursivearrayiterator.getchildren.php * @return RecursiveArrayIterator|null An iterator for the current entry, if it is an array or object. */ #[TentativeType] public function getChildren(): ?RecursiveArrayIterator { } } __halt_compiler();----SIGNATURE:----KWkhrfjQTFRc11rPuBnelxBqH50Fstszqu2MZMTyu3bSoXD4rdG+YDZ1SUvVqo3TypfuTxcJizhL/c2d7unwhzne4d8xyVq4WOaPYoU32wRvEgDs8ScqIGaNC2gOB6duIYz0CyIP/L8b0F2Ls7fHZVznhZLxYJ08ZapC2uUA/6MjOgnIqMQ5gRkFWj8ONVT8AaVKR3gTOEROpvFGarbdKchuqdgjcO0eH3HkXwOyNzqMcykPWUzPRKmilpFMsqglXASTgLrABqJbf1esEpUB5TGflscnLeTJVFO5tdgjUVh/lamICEWuHF0SkgJZeY1zSM0dM9102eohQet4WNvaEAlMszWtsTDd3LodDUb8wp7HoCSqkM785npgsNIHK+9yFTieX21i15ZAI9G8q9fT+SaZM2l9e3kvzCNEiXhsIpV8oAmaCqCrvEWyHXazXBytRR74XxI+FfohFKTB9+pGwr4bDfCHWX12AipwIOA6PF7TMpQ+B5U33xkfQQ4f2saN+LFnjaVQlfNBv5LCvkXMVJ0Kvgd816vZzpJ7Vs4B6v/eSq14iAr3VugrbfL/JzgxUDa17FfHGQ0PLAb9FKMENbqEnEk1QdbCYVrY1lDbWf6gs7BAhkpy0WoWEbJdG4Rid/kh2eLjq9aC6CpmvgFfXbDC8VfV/Zc2g683djgU6O4=----ATTACHMENT:----OTkwNTkyNjQ0Mzc4MjQ2MiA2ODg3NDUzMDQ4ODc0MDUxIDE4MDM3ODU3ODgyMjM1Mw==