You are here

class SplFixedArray in Automatic Updates 8

Same name and namespace in other branches
  1. 7 vendor/paragonie/sodium_compat/src/PHP52/SplFixedArray.php \SplFixedArray

The SplFixedArray class provides the main functionalities of array. The main differences between a SplFixedArray and a normal PHP array is that the SplFixedArray is of fixed length and allows only integers within the range as indexes. The advantage is that it allows a faster array implementation.

Hierarchy

  • class \SplFixedArray implements \Iterator, \ArrayAccess, \Countable

Expanded class hierarchy of SplFixedArray

1 string reference to 'SplFixedArray'
SplFixedArray.php in vendor/paragonie/sodium_compat/src/PHP52/SplFixedArray.php

File

vendor/paragonie/sodium_compat/src/PHP52/SplFixedArray.php, line 14

View source
class SplFixedArray implements Iterator, ArrayAccess, Countable {

  /** @var array<int, mixed> */
  private $internalArray = array();

  /** @var int $size */
  private $size = 0;

  /**
   * SplFixedArray constructor.
   * @param int $size
   */
  public function __construct($size = 0) {
    $this->size = $size;
    $this->internalArray = array();
  }

  /**
   * @return int
   */
  public function count() {
    return count($this->internalArray);
  }

  /**
   * @return array
   */
  public function toArray() {
    ksort($this->internalArray);
    return (array) $this->internalArray;
  }

  /**
   * @param array $array
   * @param bool $save_indexes
   * @return SplFixedArray
   * @psalm-suppress MixedAssignment
   */
  public static function fromArray(array $array, $save_indexes = true) {
    $self = new SplFixedArray(count($array));
    if ($save_indexes) {
      foreach ($array as $key => $value) {
        $self[(int) $key] = $value;
      }
    }
    else {
      $i = 0;
      foreach (array_values($array) as $value) {
        $self[$i] = $value;
        $i++;
      }
    }
    return $self;
  }

  /**
   * @return int
   */
  public function getSize() {
    return $this->size;
  }

  /**
   * @param int $size
   * @return bool
   */
  public function setSize($size) {
    $this->size = $size;
    return true;
  }

  /**
   * @param string|int $index
   * @return bool
   */
  public function offsetExists($index) {
    return array_key_exists((int) $index, $this->internalArray);
  }

  /**
   * @param string|int $index
   * @return mixed
   */
  public function offsetGet($index) {
    return $this->internalArray[(int) $index];
  }

  /**
   * @param string|int $index
   * @param mixed $newval
   * @psalm-suppress MixedAssignment
   */
  public function offsetSet($index, $newval) {
    $this->internalArray[(int) $index] = $newval;
  }

  /**
   * @param string|int $index
   */
  public function offsetUnset($index) {
    unset($this->internalArray[(int) $index]);
  }

  /**
   * Rewind iterator back to the start
   * @link https://php.net/manual/en/splfixedarray.rewind.php
   * @return void
   * @since 5.3.0
   */
  public function rewind() {
    reset($this->internalArray);
  }

  /**
   * Return current array entry
   * @link https://php.net/manual/en/splfixedarray.current.php
   * @return mixed The current element value.
   * @since 5.3.0
   */
  public function current() {
    return current($this->internalArray);
  }

  /**
   * Return current array index
   * @return int The current array index.
   */
  public function key() {
    return key($this->internalArray);
  }

  /**
   * @return void
   */
  public function next() {
    next($this->internalArray);
  }

  /**
   * Check whether the array contains more elements
   * @link https://php.net/manual/en/splfixedarray.valid.php
   * @return bool true if the array contains any more elements, false otherwise.
   */
  public function valid() {
    if (empty($this->internalArray)) {
      return false;
    }
    $result = next($this->internalArray) !== false;
    prev($this->internalArray);
    return $result;
  }

  /**
   * Do nothing.
   */
  public function __wakeup() {

    // NOP
  }

}

Members

Namesort descending Modifiers Type Description Overrides
SplFixedArray::$internalArray private property @var array<int, mixed>
SplFixedArray::$size private property @var int $size
SplFixedArray::count public function
SplFixedArray::current public function Return current array entry @link https://php.net/manual/en/splfixedarray.current.php
SplFixedArray::fromArray public static function @psalm-suppress MixedAssignment
SplFixedArray::getSize public function
SplFixedArray::key public function Return current array index
SplFixedArray::next public function
SplFixedArray::offsetExists public function
SplFixedArray::offsetGet public function
SplFixedArray::offsetSet public function @psalm-suppress MixedAssignment
SplFixedArray::offsetUnset public function
SplFixedArray::rewind public function Rewind iterator back to the start @link https://php.net/manual/en/splfixedarray.rewind.php
SplFixedArray::setSize public function
SplFixedArray::toArray public function
SplFixedArray::valid public function Check whether the array contains more elements @link https://php.net/manual/en/splfixedarray.valid.php
SplFixedArray::__construct public function SplFixedArray constructor.
SplFixedArray::__wakeup public function Do nothing.