PHP 8.1.0 RC 2 available for testing

SplFixedArray::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::offsetUnsetУдаляет значение по индексу $index

Описание

public SplFixedArray::offsetUnset(int $index): void

Удаляет значение по заданному индексу.

Список параметров

index

Индекс, по которому удаляется значение.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение RuntimeException, когда index превышает заданный размер массива или когда index нельзя распознать как целое число.

add a note add a note

User Contributed Notes 1 note

up
4
c dot 1 at smithies dot org
10 years ago
This function assigns NULL to the array element. Its use has no effect on count(). Whereas assigning NULL to an element will have no effect on isset(), offsetUnset() and unset() do. Whereas unsetting an element affects the behaviour of foreach() as applied to an array or an ArrayObject, it has no such effect on SplFixedArray, as demonstrated by the code below.

<?php

class atest extends SplFixedArray {
  public function
fill() {
    for (
$i = $this->count(); --$i >= 0; ) $this[$i] = $i;
  }
  public function
dump() {
   
$sep = ' ';
    foreach (
$this as $k => $v) {
      echo
$sep, "$k: ", (is_null($v) ? 'NULL' : $v);
      if (!isset(
$this[$k])) echo ' and unset';
     
$sep = ', ';
    }
    echo
PHP_EOL;
  }
}

$a = new atest(3);
$a->dump(); //  0: NULL and unset, 1: NULL and unset, 2: NULL and unset
$a->fill();
$a->dump(); //  0: 0, 1: 1, 2: 2
$a[1] = NULL;
unset(
$a[2]);
$a->dump(); //  0: 0, 1: NULL, 2: NULL and unset
?>
To Top